1.变量定义当前代码块之前;

2.const可解释为只读,修饰的不可改变

3.static 修饰静态变量,静态局部变量生命周期延长即在同一原文件内,函数作用域{}外可改变;

4.字符串/0结束标志符,不计字符串长度,EOF文件结束标识符值=-1;

转义标识符多加一个\才不会被转义;

5.负数内存存储是二进制补码,打印是原码,正数三码一样,负数补码=反码+1;

后置++,先代入在++,前置++,先++再代入;

6.宏定义 #define MAX(X,Y) (X>Y? X:Y)

7.typedef 重新给变量起别名;

8.~按位取反(某位置1置0操作);^按位异或(用于数据交换);

9.int*  指针变量为int,指向地址;

*p 是解引用,指向地址的值;

10.结构体变量的成员如果是数组,不可以.来更改,要复制strcpy()把要改的内容覆盖过去;

11.指针p->成员,即地址指向值操作,等同.操作;

12.strlen计算字符串长度时候,不会计算/0,siseof会计算,比如int arr【】={abc},strlen(arr)=3,sizeof(arr)=4;

13.逻辑条件时,不能18<=age<28,会先代入左边,比如age=10,代入左边<=18为假,0<28为真;整个为真,应该(age>18&&age<28);

==逻辑等于判断,不要与=混淆,字符串的比较要用strcmp,不能用=;

14.break;紧跟循环跳出,continue是忽略后面语句继续循环;

15.二分法算法,left=0;right=strlen()-1;while(left=right); left++;right--;一般用于寻找;

16.函数声明,定义(形参/void),返回值

17.memset(*,value,个数)——内存设置

18.传值调用:对形参改变不会影响实参,仅要返回值,传址(实参地址传参)调用:可以改变实参

19.*p++,++优先级高,要写(*p)++

20.链式访问:把一个函数返回值作为另一个函数参数

21.printf,会返回字符数的个数

22.引用自己函数模块(.c .h)#include “.h”,头文件:#ifnef(如果没有定义) #define #endif

23.递归,栈溢出(stack overflow),栈区:局部变量 函数形参 堆区:动态开辟内存malloc,calloc 静态区:全局变量,static修饰的变量

 24.斐波那契数列:前俩个加起来等于第三个,可以用递归代码编写,但是过于计算重复,效率低,代码优化使用迭代

25.不新增变量进行交换值可用俩次异或^

26.冒泡排序:俩俩比较

27.整数提升(高位补),整数截断(低位截断)