条件语句:(面试经常使用)面试
while & do...while区别数组
break & continue函数
值传递的特色ui
scanf()函数读取问题指针
数组初始化code
字符串四大函数生命周期
strlen & siseof区别seo
'\0'
'\0'
本身在实现函数时必定要加断言assert.h中assert();内存
当二维数组为参数传递的时候必须指定全部维数的大小或者省略第一维,可是不能省略第二维或更高维的大小作用域
指针
注意:
不管何种类型的指针,它的sizeof的大小都是4;注意:
在任什么时候候,一个指针变量只能指向一个地址值,也就是说只能指向一个数据注意:
指针常量是const修饰在前,做为在指针上,效果为指针不可改变地址,却能够修改指向的地址内的值注意:
常量指针是const修饰在类型以后,做用在指向的内存值上,效果为指针可变地址,却不能够修改地址内的值栈&堆
static做用
结构体&枚举&联合体
//总体为4字节,缘由在于指针 typedef struct student { int id; //占位4字节 char name[20];//占位20字节 }*STU;//别名是指针4个字节
//总体为全部成员占位之和 typedef struct student { int id; //占位4字节 char name[20];//占位20字节 }STU;
//枚举类型大小始终为4字节,(猜测:可能性为枚举在运算过程当中返回的值为int类型且只返回一个有关) //枚举内元素初始化赋值,但初始化后,后一个元素的下标值取决在于前一个下标的基础上递增1 //枚举内元素若是未初始化,哪么默认的下标从0开始,能够把枚举当成一个另类数组 //枚举内元素分隔与数组同样,惟一不一样的是能够给元素赋值 //右大括号后也同数组同样用分号结束 enum time{A,B,C};//枚举 int array{1,2,3,4};//数组 //自行体会类似处
//共用体大小取决于成员最大值 union Lian{ int id; char name[20]; }; union Lian test; test.id = 10; strcpy(test.name,"TEST"); printf("%d",test.id);//这个会输出异常 printf("%s",test.name);//这个正常输出 //================================= test.id = 10; printf("%d",test.id);//正常输出 strcpy(test.name,"TEST"); printf("%s",test.name);//正常输出 //猜测
typedef&define
#define true 1 #define false 0 #define uint unsigned