可以快速略过,主要是变量和常量、关键字等定义,和java等语言都相似 阅读耗时不到 1 分钟
变量
变量存在的意义就是方便我们管理内存
定义: 数据类型 变量名 = 初始值
常量
- 宏定义常量
- 定义: #define 常量名 常量值
- 例如
#define PI 3.14
- const 修饰的变量
- 定义:const 数据类型 常量名 = 常量值
关键字
下面列出了 C++ 中的保留字。这些保留字不能作为常量名、变量名或其他标识符名称。
一般也不会啊,就例如java关键字,你也说不全,但基本不会用关键字,可以快速pass
标识符命名规则
- 不能是关键字
- 第一个字符必须是字母或者下划线
- 字母、数字、下划线组成
数据类型
| 数据类型 | 长度 | | —- | —- | | short | 2个字节 | | int | 4 个字节 | | long | 4(windows)、4(linux 32位)、8 (linux 64位) | | long long | 长整型 8 个字节 | | char | 1个字节 | | float | 4个字节 | | double | 8个字节 | | long double | 16个字节 | | wchar_t | 宽字符 2 或者 4 个字节 |
需要看大小的话 可以利用sizeof
例如 下面语句打印出 int 大小,结果是 4
int main(){int a = 10;cout << sizeof(a) << endl;reutnr 0;}
宽字符空间其实和 shrot int 一样 typedef short int wchar_t; (typedef 定义别名)
字符型变量并不是把字符本身放到内存中存储,而是将对应的ASCII放入到存储单元
默认情况下,int 、short 、long 都是带符号的 signed ,那你会问 unsigned 和signed 什么区别啊,看下面例子你就懂了
| 类型 | 范围 |
|---|---|
| char | 1 个字节 范围 -128~127或者 0~255 |
| unsigned char | 1 个字节 ,范围 0~ 255 |
| signed char | 1 个字节 , -128 ~127 |
| int | -2147483648 ~ 2147483647 |
| unsigned int | 0 ~ 4294967295 |
| signed int | -2147483648 ~ 2147483647 |
| short int | -32768 ~ 32767 |
| unsigned short int | 0 ~ 65535 |
| signed short int | -32678 ~ 32767 |
剩下的long 和 double 就不说了,signed 和 unsigned 就是一个有符号,一个无符号,区别从表里面品
运算符
和Java、python等语言一样,可pass,防止有顶级新手入门,还是贴出来瞅瞅
| 运算符 | 描述 | 实例 (A = 20 , B = 10) |
|---|---|---|
| + | 相加 | A + B = 30 |
| - | 相减 | A - B = 10 |
| * | 相乘 | A * B = 200 |
| / | 相除 | A / B = 2 |
| % | 取模运算 | B % A = 10 ,A % B = 2 |
| ++ | 自增 | A ++ 等于21 C = A ++ ,C结果是 21, C = ++A ,C结果是 20 |
| — | 自减 | A — 等于19 |
程序流程
if else
while
for
break
continue 这些没有什么好说的,所有语言通用,真不清楚的可以看这里 C++循环
唯一需要提一下的是 goto
语法: goto 标记;
如果标记的名称存在,执行到goto语句时,会跳转到标记的位置
作用: 可以无条件的跳转语句
示例
int main(){
cout << " 1 "<< endl;
goto FLAG;
cout << " 2 " << endl;
FLAG:
cout << " 5 " << endl;
return 0;
}
上面的结果,输出是
1
5
数组
数组中每个数据元素都是相同的数据类型 并且 是由连续的内存位置组成的
一维数组定义方式
- 数据类型 数组名[数组长度];
- 数据类型 数组名[数组长度] = {值1, 值 2 …. };
- 数据类型 数组名[] = {值1, 值2 …. };
示例
int main(){
int score[10];
score[0] = 100;
int score2[5] = {1, 2, 3 , 4 ,5 };
int score3[5] = {1, 3, 4 }; //这种默认 score3[3] = 0; score3[4] = 0;
int score4[] = {1, 2, 3, 4};//score4 长度 是 4
return 0;
}
二维数组定义方式
- 数组类型 数组名[行数][列数];
- 数组类型 数组名[行数][列数] = { {数据1,数据2},{数据3, 数据4}};
- 数组类型 数组名[行数][列数] = {数据1, 数据 2 ,数据3 ,数据4};
- 数组类型 数组名[][列数] = {数据1,数据2,数据3,数据4};
建议用第1、2中方式,比较有语义化
示例
int main(){
int arr[2][3];
int arr2[2][3] = {{1,2,3},{4,5,6}};
int arr3[2][3] = {1, 2, 3, 4, 5 ,6};
int arr4[][3] = {1, 2, 3, 4, 5, 6};
for(int i = 0;i< 2;i++){
for(int j = 0;j< 3;j++){
cout << arr4[i][j] << "\t";
}
cout << endl;
}
return 0;
}
