数据类型:
数据类型的本质:固定大小的内存的别名
1byte char 1个byte的内存用char来表示
2byte short 2个byte的内存用short来表示
4byte int 4个byte的内存用int来表示
auto即C语言中局部变量的默认属性
编译器默认所有的局部变量都是auto的,指明该变量是在程序的栈上面分配空间的
static关键字指明变量的“静态”属性
static修饰的局部变量存储在程序的静态区分配空间,static关键字同时具有“作用域限定符”的意义
作用域限定符 :
static修饰的全局变量作用域只在声明的文件中,只能在该文件中被调用
static修饰的函数作用域只在声明的文件中,也就是只在该文件中可以被调用,其他文件中不能被调用
register关键字指明将变量存储于寄存器中
register只是请求寄存器变量,但不一定请求成功,register指明的变量的长度必须是CPU寄存器可以接受的值
不能用&运算符获取register变量的地址,&只能取内存中的地址,因为寄存器不属于内存
寄存器变量只可能是局部变量,寄存器变量用在对实时性要求非常高的系统当中。
**************************
数据类型的本质:固定大小的内存的别名
1byte char 1个byte的内存用char来表示
2byte short 2个byte的内存用short来表示
4byte int 4个byte的内存用int来表示
变量:
变量的本质:变量是一段实际连续存储空间的别名,程序中通过变量来申请并命名存储空间,通过变量的名字可以使用存储空间。
变量的属性:c语言中的变量可以有自己的属性,在定义变量的时候可以加上“属性”关键字,“属性”关键字指明变量的特有意义auto即C语言中局部变量的默认属性
编译器默认所有的局部变量都是auto的,指明该变量是在程序的栈上面分配空间的
static关键字指明变量的“静态”属性
static修饰的局部变量存储在程序的静态区分配空间,static关键字同时具有“作用域限定符”的意义
作用域限定符 :
static修饰的全局变量作用域只在声明的文件中,只能在该文件中被调用
static修饰的函数作用域只在声明的文件中,也就是只在该文件中可以被调用,其他文件中不能被调用
register关键字指明将变量存储于寄存器中
register只是请求寄存器变量,但不一定请求成功,register指明的变量的长度必须是CPU寄存器可以接受的值
不能用&运算符获取register变量的地址,&只能取内存中的地址,因为寄存器不属于内存
寄存器变量只可能是局部变量,寄存器变量用在对实时性要求非常高的系统当中。
**************************
小结:
变量用来标识一段连续的内存,而变量前面的数据类型用来标识这段连续内存的长度。
例如: int a=13; 表示用一段内存来保存数据13,并为该段内存起名为a,而该段内存的长度则为4个byte(int类型)。
auto 指明的变量存储在程序的栈中,默认属性
static 指明的变量在程序的静态区中分配空间
register 指明的变量是向编译器请求存储在CPU寄存器中