1.四种基本数据类型:整型,浮点型,指针,聚合类型(数组,结构体等)。
2.长整型至少和整型一样长,整型至少和短整型一样长。
3.字符在本质上是小整数型,在把字符当成小整数型的情况下,可以声明,unsigned或者signed char,可以提高可移植性,但可能也会出现兼容问题。
4.字面值(常量)。
5.typedef:为各种数据类型定义新的名字。
6.int const *cp;指向整型常量的指针,你可以修改指针的值,但不能修改它所指向的值。
int *const cp;为一个指向整型常量的指针。此时,指针是常量,它的值无法改变,但可以修改它指向的整型值。
int const *const cp;都不允许修改。
7.static定义静态变量,extern定义全局变量。
8.变量的储存方式:
空间:程序区 静态储存区 动态储存区
时间:静态储存方式 动态储存方式
9.全局变量:全部储存在静态储存区,程序开始是给它分配空间,一直到程序结束释放。(extern有点类似告诉程序,这个变量其他地方有,你就不要操心了)
静态储存变量:在定义时得值,一直到整个程序结束。
动态储存区:函数形式参数,自动变量(没加static),函数调用时的现场保护和返回地址。
auto变量:无static,为动态变量。
static声明局部变量,静态局部变量。
register:为提高效率将局部变量得值(局部自动变量)放入CPU寄存器中(计算机中寄存器有限)。
10.对于自动变量因为位置不确定,无法初始化为0,int const a;只是无法改变其值,const固值,不固址。
11.extern作用域:从声明处到文件尾。
extern可以理解成声明这是一个全局变量
例
int main(void) { x=x+5;.......1 ... } int x=5; //错误,需要在1处声明extern x;
12.在定义类型的新名字时,使用typedef而不是#define。