一.常量
1.常量的概念:
在程序执行的过程中,值不会改变的量
2.字面常量:
被书写到代码内的常量称为字面常量,也被称为字面量
(1).整型字面常量:整数,不带小数点的数字
(2).实型字面常量:小数,带有小数点的数字
(3).字符型字面常量:以单引号('')包围的单个字符(只能是单个)
(4).字符串字面常量:以双引号("")包围的任意个字符
3.符号常量
1.概念:
在C++中,可以用一个标识符来表示一个常量,称之为符号常量(也就是说,给常量起一个名字,那就是符号常量)
2.特点:
是编译后写在代码区,不可寻址,不可更改,属于指令的一部分
3.定义语法:
#define 标识符(名称) 常量
4.简单案例:
#include "iostream"
using namespace std;
// 符号常量定义在代码的头部 ,并且在定义好了之后不需要使用分号结尾
#define MY_NAME "Jack"
int main() {
// 输出符号常量
cout << MY_NAME << endl;
// 最终输出的结果是Jack
return 0;
}
5.关于在C++中无法正确输出中文的解决方式
①:引入windows.h库
#include "windows.h"
然后在主函数中编写:
SetConsoleOutputCP(CP_UTF8);
②:在主函数中写上这么一行代码:
system("chcp 65001");
6.使用符号常量时需要注意的细节:
①:定义在代码头部,先定义后使用
②:符号常量名是标识符,符合字母、数字、下划线组合的要求并且数字不可以放在开头
③:字母建议和后续的变量进行区分
二.标识符和关键字
在C++代码中会涉及到许多命名的场景,比如变量的命名,以及后续学习的类、函数等命名,这些命名被我们统称为标识符(表示某类实体的符号)
1.标识符的内容限定:
①:只允许数字、字母和下划线的组合
②:数字不可以放在变量的开头
③:不可以使用到关键字
2.关键字的概念:
C++ 关键字是编程语言保留的单词,这些单词具有特定的含义,并在编译过程中被编译器识别和处理。由于关键字有特殊的用途,因此不能将它们用作标识符(变量名、函数名、类名等)
三.变量的基础应用
1.变量的概念:
变量指的是在程序运行时能存储计算结果或能表示值的抽象概念
简单地说,变量就是在程序运行时记录数据用的一种容器
2.变量的作用:
用于在程序运行过程中记录数据(变量可以被重复使用)
3.变量的声明和赋值
(1).变量的声明:
对变量进行定义,也就是声明
语法:
变量类型 变量名;
// 变量名也是标识符,需要符合标识符的特点
(2).变量的赋值:
在变量中存入数据,也就是赋值
语法:
变量名 = 变量值;
(3).举例:
#include "iostream"
using namespace std;
int main() {
// 变量的定义与使用
int age = 18;
cout << age << endl;
return 0;
}
4.变量的特征:
变量中存储的数据是可以发生改变的,如果想要修改变量值,只需要再次使用赋值语句对其赋值即可
5.变量的快速定义
除了基本的先声明后赋值的应用之外,变量还支持多种快捷的使用形式
1.声明和赋值同步完成
int num = 10;
2.一次性声明多个变量
int x, y, z; // 声明多个变量时中间用逗号隔开即可
3.一次性声明多个变量的同时对其进行赋值
int x = 10, y = 20, z = 30;
三.标识符的命名规范
1.符号常量:
在满足标识符的硬性要求之下,如若使用英文字母,应该全部大写
2.变量:
在满足标识符的硬性要求之下,如果使用英文字母,不应该全部大写(大小写组合或纯小写)
四.标识符的限制规则
1.标识符:
用来标识某个实体的符号,在编程语言中表示代码中所使用的各类名称,目前我们接触到的标识符有符号常量名和变量名,除此之外还有类名,文件名,方法/函数名等等
2.标识符的使用限制分为两类:
①:硬性限制被称为规则
②:软性限制被称为规范
3.三类规则
①:内容限定:
仅可使用字母、数字、下划线的组合,并且数字不可放在开头
②:大小写敏感:
大写字母和小写字母的名称是不同的可区分的
③:不可使用关键字:
关键字是C++语言内置使用的特殊标识符,用户不可以占用
五.整型数据类型
在这种数据类型中包含四种不同的数据类型,分别是short(短整型),int(整型),long(长整型),long long(长长整型),它们所占用的空间分别为2字节,4字节,4字节,8字节
使用sizeof函数即可确定不同数据类型占用的内存空间
int ans = 10;
cout << sizeof(ans) << endl;
六.无符号和有符号数字
在C++中,数字分为无符号和有符号两类
无符号数字:仅仅允许正数存在
有符号数字:可以允许负数存在
那么怎么在C++程序中体现出这两种数字呢?
有符号数字的选项是signed,无符号数字的选项是unsigned(默认是有符号signed)
#include "iostream"
using namespace std;
int main() {
// 有符号数(signed是默认值,省略没写)
int num1 = 10;
// 无符号数
unsigned int num2 = 20;
}
七.实型数据类型
在这种数据类型中包含三种不同的数据类型,分别是float,double,long double,它们所占用的空间分别为4字节,8字节,16字节,有效位数分别为6-7位,15-16位,18-19位,超出有效位数的数据可能会出错
实型数据没有signed和unsigned定义有无符号,默认全是有符号数
八.字符型数据类型
在这种数据类型中包含两种不同的数据类型,分别是有符号char类型和无符号char类型,它们所占用的空间都为一个字节,范围分别为-128-127,0-255
1.char的本质
char类型本质上是数字,也就是说在内存中存储的实际上是数字,但是通过与ASCII码表进行对应,可以完成字符->数字输入,数字->字符使用的转换
一段程序帮助你理解char类型的本质:
#include "iostream"
using namespace std;
int main() {
int ans = 'a';
cout << ans << endl;
}
char类型可以存储的数据范围是超出ASCII码表的,但是基于ASCII码表的映射,可以认为char的应用内容就是ASCII码表
九.字符串数据类型
在C++中有两种风格的字符串使用形式:
1.C语言风格:
char str1[] = "myproject"; // 字符数组形式
char *str2 = "test"; // 指针形式
2.C++风格字符串:
string str = "String";
3.字符串的拼接
在C++中经常需要完成多个字符串拼接为一个字符串的操作,如果我们想要拼接字符串,只需要进行+操作进行连接即可
#include "iostream"
using namespace std;
int main() {
string str1 = "Hello";
string str2 = "World";
string str3 = "Peace";
string ans = str1 + " " + str2 + " " + str3;
cout << ans << endl;
}
注意:加号仅适用于字符串和字符串进行拼接,如果想要拼接非字符串,则需要将其转换为字符串才能进行拼接
转换非字符串的方法:使用C++内置的to_string函数将内容转换成字符串类型
十.布尔型数据类型
我们使用布尔类型的数据表达互斥
1.布尔类型的字面量分别为true(本质为1),false(本质为0)
2.布尔类型的应用场景:用于程序中的逻辑判断,通过真或假来决定程序的执行流程
十一.cin数据输入
1.作用:
通过cin我们可以接受数据的输入
2.语法:
cin >> 变量;
3.简单举例:
#include"iostream"
using namespace std;
int main() {
int num;
cin >> num;
cout << num << endl;
return 0;
}
4.注意事项:
①:cin会自动识别接受数据的变量类型,完成类型适配
②:使用的符号为>>而不是<<
5.使用cin无法接收中文的解决方式(中文输出为乱码)
使用Clion的注册表修改,取消run.processes.with.pty后,可以同时解决cin和cout无法正确接收中文的问题
具体的操作方式为:
①:按住键盘ctrl + shift + alt + /,然后选择Registry
②:取消勾选run.processes.with.pty
十二.运算符
运算符是一种符号,用于告诉编译器执行特定的数学或逻辑操作
1.C++内置的运算符有:
①:算术运算符:通过指定的符号对程序内的数据进行数学运算(+-*/)
②:赋值运算符:用于将右侧表达式的值赋予左侧的变量(=)
③:比较运算符:用于对两个数据进行比较,最终返回的结果为bool型(><)
④:逻辑运算符:用于对单个或多个表达式进行逻辑判断(&&||!)
⑤:位运算符
⑥:三元运算符:用于对逻辑进行判断,根据判断结果提供不同的值
2.语法:
条件判断语句 ? 值1 : 值2;
3.含义:
如果?之前的表达式结果为true,那么就提供值1,反之提供值2
4.举例:
#include"iostream"
using namespace std;
int main() {
int num1 = 100, num2 = 200;
// 若num1大于num2,则输出num1,反之输出num2
int ans = num1 > num2 ? num1 : num2;
cout << ans << endl;
}
等等