数组 格式:int arr[4] = {1,2,3,4}; {0,1,2,3} 每个数组都有下标,下标从零开始,所对应数组 下标是为了访问数组的元素 如果有N个数组,那么最后的下标就为N-1 如,要访问数组5 #include<stdio.h> int main() { int arr[7] = {1,2,3,4,5,6,7}; printf("%d\n" , arr[4]); return 0; }

利用所学的while循环,打印数组里所有元素 #include<stdio.h> int main() { int i = 0; int arr[10] = {1,2,3,4,5,6,7,8,9,10}; while(i < 10) { printf("%d\n" ,arr[i]); i++; } return 0; }

操作符 算数操作符:+,-,*,/,%(取模) 移位操作符:<< 左移 , >>右移 移的二进制位。 位操作符(二进制位): &(按位与):0为假,1为真,假&真 = 假。只有真&真 = 真 如:3&5 = 001 = 1 3的二进制数 = 011 5的二进制数 = 101 3 & 5 = 001 |(按位或):一个真就为真 ^(按位异或):对应二进制相同则为0,对应的二进制相反,则为1

赋值操作符 = 右边的值赋给左边 == 判断是否相等 复合赋值符 += -= *= /= %=…… a = a+ 10 == a += 10 a = a - 20 == a -= 20

单目操作符: !逻辑反操作:取相反,为真就取假,假 = 0

  • :负值 +:正值 &:取地址 sizeof :操作数类型长度(单位为字节) siziof 计算数组个体数目 = 总大小 / 单个大小 ~ :对一个数的二进制按位取反: x++:后置加加:先使用,再加加 ++x:前置加加:先加加,再使用 x--:后置减减:先使用,再减减 --x:前置减减:先减减,再使用 *:间接访问操作符 (类型):强制转换 int a = (int ) 3.14;(原来为double类型,现在为int类型) 关系操作符:

= < <= !=:测试不相等 ==:测试相等 逻辑操作符:C语言中。0为假,非零为真 &&:逻辑与(并且)0 == 假 1 == 真 ||:逻辑或(有一个为真,就为真) 条件操作符: exp1?exp2:exp3: exp(表达式) []:下标应用操作符 ():函数调用操作符

双目操作符:+ - * / % 三目操作符:

原码,反码,补码 符号位:开头的第一位数字,即为符号位。 原码:直接按照正负写出的。 反码:符号位不变,其它位按位取反。 补码:反码加一。 -2 原码:10000000000000000000000000000010 反码:1111111111111111111111111111111111101 补码: 1111111111111111111111111111111111110 负数存的都是补码。

关键词 typedef :类型重定义(自己重新给关键词命名) 如:unsigned int number = 20; typedef unsigned int u_int; static:是用来修饰函数的。修饰局部变量,当static修饰局部变量时,局部变量的生命周期变长。 static修饰全局变量,作用域变短,只能再该文件使用,作用域变短 static修饰函数,改变了函数的链接属性。正常函数,具有外部链接属性。但被static修饰了过后,就成了内部链接属性,使其不能在其它文件使用了。 如:void test () { static int a = 1; //a是一个静态局部变量 a++: printf("a = %d\n" , a); } int main() int i = 0; while (i<5) { test(); i++;} extern-申明外部符号

#define定义的标识符常量和宏 宏:宏是在符号(标识符)的基础上加了个参数,宏是带参数的。

指针 指针:用来存放地址的, 指针大小,在32位平台上是4byte。在64位平台上是8byte。