目录
#define 宏常量: #define 常量名 常量值
通常在文件上方定义,表示一个常量。
宏常量可以放于数组定义中。
宏常量也不可以修改。
定义时末尾没有分号
const修饰的变量 const 数据类型 常量名 = 常量值
通常在变量定义前加关键字const,修饰该变量为常量,不可修改,必须在定义时赋予初值
- //1、宏常量
- #define day 7
- #define n 10
-
- int main() {
- //1、宏常量
- cout << "一周里总共有 " << day << " 天" << endl;
- //day = 8; //报错,宏常量不可以修改
- //定义数组
- int arr[n];
-
- //2、const修饰变量
- const int month = 12;
- cout << "一年里总共有 " << month << " 个月份" << endl;
- //month = 24; //报错,常量是不可以修改的
-
- system("pause");
- return 0;
- }
标识符不能是关键字
标识符只能由字母、数字、下划线组成
第一个字符必须为字母或下划线
标识符中字母区分大小写

不同类型的整型所占空间不同:
| 数据类型 | 占用空间 | 取值范围 |
|---|---|---|
| short(短整型) | 2字节 | (-2^15 ~ 2^15-1) |
| int(整型) | 4字节 | (-2^31 ~ 2^31-1) |
| long(长整形) | Windows为4字节,Linux为4字节(32位),8字节(64位) | (-2^31 ~ 2^31-1) |
| long long(长长整形) | 8字节 | (-2^63 ~ 2^63-1) |
sizeof作用:利用sizeof关键字可以==统计数据类型所占内存大小==
语法: sizeof( 数据类型 / 变量)
- int main() {
- cout << "short 类型所占内存空间为: " << sizeof(short) << endl;
- return 0;
- }
typeid作用:判断数据属于什么类型。
语法:typeid(判断的数据)
- int main()
- {
- //两个小数相除
- double d1 = 0.5;
- double d2 = 0.25;
-
- if (typeid(d1/d2) == typeid(double))
- {
- cout << "是浮点类型" << endl;
- }
- else if (typeid(d1 / d2) == typeid(int)) {
- cout << "是整数类型" << endl;
- }
- cout << d1 / d2 << endl; //double浮点类型
-
- return 0;
- }
浮点型变量用于表示小数分为两种,二者的区别在于表示数字的范围不同
单精度float
双精度double
| 数据类型 | 占用空间 | 有效数字范围 |
|---|---|---|
| float | 4字节 | 7位有效数字(包括整数部分) |
| double | 8字节 | 15~16位有效数字(包括整数部分) |
- int main() {
-
- float f1 = 3.14f;
- double d1 = 3.14;
-
- //科学计数法
- float f2 = 3e2; // 3 * 10 ^ 2
- float f3 = 3e-2; // 3 * 0.1 ^ 2
-
- system("pause");
- return 0;
- }
作用:字符型变量用于显示单个字符
语法:char ch = 'a';
注意1:在显示字符型变量时,用单引号将字符括起来,不要用双引号
注意2:单引号内只能有一个字符,不可以是字符串
C和C++中字符型变量只占用1个字节。
字符型变量并不是把字符本身放到内存中存储,而是将对应的ASCII编码放入到存储单元
A的ASCII是65,a是97,0是48。
- int main() {
-
- char ch = 'a';
- cout << ch << endl;
- cout << sizeof(char) << endl;
-
- //ch = "abcde"; //错误,不可以用双引号
- //ch = 'abcde'; //错误,单引号内只能引用一个字符
-
- // 将字符转化为对应的ascll值
- cout << (int)ch << endl; //查看字符a对应的ASCII码
- ch = 97; //可以直接用ASCII给字符型变量赋值
- cout << ch << endl;
-
- // 将int转化为对应的ASCII字符
- cout << (char)65 << endl;
-
- // 将数字转化为对应的ASCII值
- cout << 65 + '0' << endl;
-
- system("pause");
-
- return 0;
- }
作用:用于表示一些不能显示出来的ASCII字符。用 \ 来进行转义:
- int main() {
-
- // \
- cout << "\\" << endl;
- // 在一个tab的距离之后输出Hello
- cout << "\tHello" << endl;
- //换行相当于打了一个endl
- cout << "\n" << endl;
-
- system("pause");
-
- return 0;
- }
1、C风格字符串: char 变量名[] = "字符串值"
2、C++风格字符串: string 变量名 = "字符串值" 使用前必须导入#include
- int main() {
-
- //C语言的字符串类型
- char str1[] = "hello world";
- cout << str1 << endl;
-
- //C++上的字符串类型
- string str = "hello world";
- cout << str << endl;
-
- system("pause");
-
- return 0;
- }
作用:布尔数据类型代表真或假的值,bool类型只有两个值: 1个字节
true --- 真(本质是1)
false --- 假(本质是0)
- int main() {
-
- bool flag = true;
- cout << flag << endl; // 1
-
- flag = false;
- cout << flag << endl; // 0
-
- cout << "size of bool = " << sizeof(bool) << endl; //1
-
- system("pause");
-
- return 0;
- }
关键字:cin
语法: cin >> 变量
除了字符串类型,其余类型的输入必须赋予初值才能使用cin,否则就会报错。
字符串输入:
bool类型输入:
- int main(){
- //字符串型输入
- string str;
- cout << "请输入字符串型变量:" << endl;
- cin >> str;
- cout << str << endl;
-
- //布尔类型输入
- bool flag = true;
- cout << "请输入布尔型变量:" << endl;
- cin >> flag;
- cout << flag << endl;
-
- system("pause");
- return EXIT_SUCCESS;
- }
我们主要介绍以下运算符:
| 运算符类型 | 作用 |
|---|---|
| 算术运算符 | 用于处理四则运算 |
| 赋值运算符 | 用于将表达式的值赋给变量 |
| 比较运算符 | 用于表达式的比较,并返回一个真值或假值 |
| 逻辑运算符 | 用于根据表达式的值返回真值或假值 |
作用:用于处理四则运算
| 运算符 | 术语 | 示例 | 结果 |
|---|---|---|---|
| + | 正号 | +3 | 3 |
| - | 负号 | -3 | -3 |
| + | 加 | 10 + 5 | 15 |
| - | 减 | 10 - 5 | 5 |
| * | 乘 | 10 * 5 | 50 |
| / | 除 | 10 / 5 | 2 |
| % | 取模(取余) | 10 % 3 | 1 |
| ++ | 前置递增 | a=2; b=++a; | a=3; b=3; |
| ++ | 后置递增 | a=2; b=a++; | a=3; b=2; |
| -- | 前置递减 | a=2; b=--a; | a=1; b=1; |
| -- | 后置递减 | a=2; b=a--; | a=1; b=2; |
1、\是转义符号,/是除
2、无论是前置还是后置运算,a的值都会发生变化。
加减乘除:
- int main()
- {
-
- int a1 = 10;
- int b1 = 3;
-
- cout << a1 + b1 << endl;
- cout << a1 - b1 << endl;
- cout << a1 * b1 << endl;
- cout << a1 / b1 << endl; //两个整数相除结果依然是整数
-
- int a2 = 10;
- int b2 = 20;
- cout << a2 / b2 << endl;
-
- int a3 = 10;
- int b3 = 0;
- //cout << a3 / b3 << endl; //报错,除数不可以为0
-
-
- //两个小数可以相除
- double d1 = 0.5;
- double d2 = 0.25;
-
- if (typeid(d1/d2) == typeid(double))
- {
- cout << "是浮点类型" << endl;
- }
- else if (typeid(d1 / d2) == typeid(int)) {
- cout << "是整数类型" << endl;
- }
- cout << d1 / d2 << endl; //还是浮点类型
-
- system("pause");
- return 0;
- }
取模:
1、只有整数才能取模运算
2、取模运算同样不支持除数为0
- //取模
- int main() {
-
- int a1 = 10;
- int b1 = 3;
-
- cout << 10 % 3 << endl;
-
- int a2 = 10;
- int b2 = 20;
-
- cout << a2 % b2 << endl;
-
- int a3 = 10;
- int b3 = 0;
-
- //cout << a3 % b3 << endl; //取模运算时,除数也不能为0
-
- //两个小数不可以取模
- double d1 = 3.14;
- double d2 = 1.1;
-
- //cout << d1 % d2 << endl;
-
- system("pause");
-
- return 0;
- }
作用:用于将表达式的值赋给变量
| 运算符 | 术语 | 示例 | 结果 |
|---|---|---|---|
| = | 赋值 | a=2; b=3; | a=2; b=3; |
| += | 加等于 | a=0; a+=2; | a=2; |
| -= | 减等于 | a=5; a-=3; | a=2; |
| *= | 乘等于 | a=2; a*=2; | a=4; |
| /= | 除等于 | a=4; a/=2; | a=2; |
| %= | 模等于 | a=3; a%2; | a=1; |
作用:用于表达式的比较,并返回一个真值或假值。
返回值是真或假,即0或1。
| 运算符 | 术语 | 示例 | 结果 |
|---|---|---|---|
| == | 相等于 | 4 == 3 | 0 |
| != | 不等于 | 4 != 3 | 1 |
| < | 小于 | 4 < 3 | 0 |
| > | 大于 | 4 > 3 | 1 |
| <= | 小于等于 | 4 <= 3 | 0 |
| >= | 大于等于 | 4 >= 1 | 1 |
作用:用于根据表达式的值返回真值或假值
在C++中除了0是假之外,所有的数都是真即1
| 运算符 | 术语 | 示例 | 结果 |
|---|---|---|---|
| ! | 非 | !a | 如果a为假,则!a为真; 如果a为真,则!a为假。 |
| && | 与 | a && b | 如果a和b都为真,则结果为真,否则为假。 |
| || | 或 | a || b | 如果a和b有一个为真,则结果为真,二者都为假时,结果为假。 |
- //逻辑运算符 --- 非
- int main() {
-
- int a = 10;
-
- cout << !a << endl; // 0
-
- cout << !!a << endl; // 1
-
- system("pause");
-
- return 0;
- }