# 🎮 编程基础
# 1. 数据类型和关键字
数据类型:
数据类型 | 关键字 | 取值 | 字节 |
---|---|---|---|
整型 | int | ~ | 4 |
字符型 | char | ~ | 1 |
布尔型 | bool | true / false | 1 |
实型 | float | 4 | |
double | 8 |
关键字:关键字是 C++
中预先保留的单词(标识符)。C++关键字如下:
asm | do | if | return |
auto | double | inline | short |
bool | dynamic_cast | int | signed |
break | else | long | sizeof |
case | enum | mutable | static |
catch | explicit | namespace | static_cast |
char | export | new | struct |
class | extern | operator | switch |
const | false | private | template |
const_cast | float | protected | this |
continue | for | public | throw |
default | friend | register | true |
delete | goto | reinterpret_cast | try |
提示
在给变量或者常量起名称时候,不要用C++得关键字,否则会产生歧义。
# 2. 常量和变量
2.1 常量:用于记录程序中不可更改的数据
语法:
- 宏常量:
#define 常量名 常量值 // 宏常量
const
常量:const 数据类型 常量名 = 常量值
示例:
// 1、宏常量
#define day 7
int example() {
cout << "一周里总共有 " << day << " 天" << endl;
day = 8; //报错,宏常量不可以修改
//2、const修饰变量
const int month = 12;
cout << "一年里总共有 " << month << " 个月份" << endl;
month = 24; //报错,常量是不可以修改的
}
1
2
3
4
5
6
7
8
9
10
11
12
2
3
4
5
6
7
8
9
10
11
12
1
2
3
4
5
6
7
8
9
10
11
12
2
3
4
5
6
7
8
9
10
11
12
2.2 变量:给一段指定的内存空间起名,方便操作这段内存
语法:数据类型 变量名 = 变量值 // 变量名由字母、数字和下划线组成,且开头只能是字母或下划线
示例:
#include<iostream>
using namespace std;
int example() {
//变量的定义
//语法:数据类型 变量名 = 初始值
int a = 10;
cout << "a = " << a << endl; // out: a = 10
}
1
2
3
4
5
6
7
8
2
3
4
5
6
7
8
1
2
3
4
5
6
7
8
2
3
4
5
6
7
8
2.3 标识符命名规则
作用:C++
规定给标识符(变量、常量)命名时,有一套自己的规则
- 标识符不能是关键字
- 标识符只能由字母、数字、下划线组成
- 第一个字符必须为字母或下划线
- 标识符中字母区分大小写
建议
给标识符命名时,争取做到见名知意的效果,方便自己和他人的阅读
# 3. 运算符
3.1 算术运算符
作用:用于处理四则运算,算术运算符包括以下符号:
运算符 | 术语 | 示例 | 结果 |
---|---|---|---|
+ | 正号 | +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; |
3.2 赋值运算符
作用:用于将表达式的值赋给变量,赋值运算符包括以下几个符号:
运算符 | 术语 | 示例 | 结果 |
---|---|---|---|
= | 赋值 | 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; |
3.3 比较运算符
作用:用于表达式的比较,并返回一个真值或假值,比较运算符有以下符号:
运算符 | 术语 | 示例 | 结果 |
---|---|---|---|
== | 相等于 | 4 == 3 | 0 |
!= | 不等于 | 4 != 3 | 1 |
< | 小于 | 4 < 3 | 0 |
> | 大于 | 4 > 3 | 1 |
<= | 小于等于 | 4 <= 3 | 0 |
>= | 大于等于 | 4 >= 1 | 1 |
3.4 逻辑运算符
作用:用于根据表达式的值返回真值或假值,逻辑运算符有以下符号:
运算符 | 术语 | 示例 | 结果 |
---|---|---|---|
! | 非 | !a | 如果 a 为假,则 !a 为真; 如果 a 为真,则 !a 为假。 |
&& | 与 | a&&b | 如果 a 和 b 都为真,则结果为真,否则为假。 |
|| | 或 | a||b | 如果 a 和 b 有一个为真,则结果为真,二者都为假时,结果为假。 |
# 4. 程序流程结构
// 1.判断结构
if(表达式) {
...
} else if(表达式) {
...
} else {
...
}
// 1.2 三目运算符
int max = a > b ? a : b;
// 2.当结构
while (表达式) {
...
}
// 3.直到结构
do {
...
} while (表达式);
// 4.选择结构
switch(变量) {
case 变量值1:
break;
case 变量值2:
...
default:
...
}
// 5.for循环
for (int i = 0; i < 10; i ++)
{
...
}
// 6.跳转语句
break;
continue;
goto;
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
# 5. 数组
# 6. 函数
函数的定义
函数的调用
形参和实参
值传递和地址传递
函数提高-默认参数
// 函数中变量f默认为false int add(int a, int b, bool f = false) { if (f) { return a - b; } else { return a + b; } } ... add(1, 2); // 1 + 2 add(1, 2, true); // 1 - 2 /* Notes: 1.如果某个位置设置了默认参数,那么在这个位置的右侧参数就必须也设置默认值 2.如果函数声明有默认参数,函数实现就不能有默认参数(声明和实现只能在其中一个中设置默认参数) */ int func(int a = 10, int b = 10); // 函数声明设置默认参数 // 函数实现设置默认参数 int func(int a = 10, int b = 10) { return a + b; }
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
221
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
# 7. 指针
- 常量指针
const int *p;
指针的指向可以改,但指针指向的值不可以改 - 指针常量
int * const p;
指针指向的值可以改,但指针的指向不可以改 const int * const p;
都不可以改
# 8. 结构体
- 三种赋值方式
struct Student{
char name[10]; // 名字
int age; // 年龄
int id; // 校园号
} s1; // 第一种,在结构体定义后添加变量名,此处为s1
// 第二种,先创建变量,再赋值
struct Student s2;
s2.age = 10;
// 第三种,在创建时使用中括号赋值
struct Student s3 = {"张三", 15, 12431};
1
2
3
4
5
6
7
8
9
10
11
12
2
3
4
5
6
7
8
9
10
11
12
1
2
3
4
5
6
7
8
9
10
11
12
2
3
4
5
6
7
8
9
10
11
12
- 结构体中const的使用场景:使用const来防止误操作