1.数组:
数组是什么?数组是类型相同,连续存放的一组数据的集合。
1.1 一维数组的定义
格式: 类型名 数组名[数组元素个数]
例如:
定义一个有10个元素的数组arr
int arr[10]
代码语言:javascript复制定义时数组中元素个数应为常量,是不可变数组,不能是变量。C99标准下才支持可变数组的变量定义。
int cnt = 5;
int arr[cnt];//C99标准
1.2 一维数组的初始化
在定义数组时同时对数组中的一些元素进行赋值。 如:
代码语言:javascript复制int arr1[10] = {0,1,2,3,4,5,6,7,8,9};
int arr2[10] = {0,2,4,6,8};
int arr3[] = {1,2,3,4,5};
char str1[3] = {'h', 'e', 'l','l','o'};
char str2[] = "hello world";
double arr4[10] = { 0 };
- 初始化时既可以对数组的全部元素进行初始化,也可以对数组的部分元素进行初始化,此时数组中未初始化的元素默认初始化为0。
- 若数组定义时不进行初始化,那么数组中所有元素的初始值为随机值(垃圾值)。
- 数组定义时方括号内数组的元素个数可以不写明,但此时需要对数组进行初始化,并且初始化的元素个数就是数组的元素个数。
1.3 一维数组的使用
- 数组含有多个元素,通过下标使用数组的某个元素。
- 对于n个元素的数组,第一个元素的下标是0,第n个元素的下标是n - 1。
int arr[10] = {1,2,3,4,5,6,7,8,9,10};
//a[0] 等于 1, a[9] 等于 10
** int arr[10]** | **arr[0] ** | arr[1] | arr[2] | arr[3] | arr[4] | arr[5] | arr[6] | arr[7] | arr[8] | arr[9] |
---|---|---|---|---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 |
2. 操作符
2.1 算术操作符
** - * /**
2.2 移位操作符
**左移 ** | ** <<** |
---|---|
右移 | >> |
2.3 位操作符
** 按位与** | ** &** |
---|---|
按位或 | | |
按位异或 | ^ |
按位取反 | ~ |
- 这里的按位是指按二进制位
2.4 赋值操作符
** =** | -= | *= | /= | &= | ^= | |= | <<= | >>= |
---|
2.5 单目操作符
** !** | 逻辑取反 |
---|---|
- | 负值 |
| 正值 |
& | 取地址 |
sizeof | 求操作数所占内存的大小,单位是字节 |
~ | 按二进制位取反 |
| 自增,分为前置 和后置 |
– | 自减,分为前置和后置 |
(类型) | 强制类型转换 |
2.6 关系操作符
** >** | < | >= | <= | != | == |
---|---|---|---|---|---|
大于 | 小于 | 大于等于 | 小于等于 | 不等于 | 等于 |
2.7 逻辑操作符
** 逻辑与** | && |
---|---|
逻辑或 | || |
逻辑取反 | ! |
2.8条件操作符
表达式1 ? 表达式2 :表达式3
- 如果表达式1为真,则执行表达式2,否则执行表达式3.
2.9 逗号表达式
表达式1,表达式2, ... , 表达式n
- 整个表达式从左向右依次执行,整个表达式最后的值取决于最后一个表达式n的值,与前面的n-1个表达式的值无关。
2.10 其他操作符
下标引用 | [] |
---|---|
函数调用 | () |
结构成员访问操作符 | 圆点(.)和箭头(->) |
END