你对C语言的关键字,知多少
学习完C语言后,在想C语言到底有多少个关键字呢?在谭浩强的《C语言程序设计》中,只对部分关键字进行介绍和讲解。看了《C语言深度解剖》后才发现原来C语言的关键字有很多在基础教材中没有出现过,也没有使用过,所以今天做一下简单的整理和介绍。在C语言标准定义中,关键字有32个,分别为:
Auto 自动变量,缺省时默认为auto
Int 整型
Short 短整型
Long 长整型
Char 字符型
Float 浮点型
Double 双精度浮点型
Signed 有符号类型
Unsigned 无符号类型
Struct 结构体
Union 联合数据类型
Enum 枚举类型
Static 静态变量
Switch 开关语句
Case 开关语句分支
Default 开关语句中的特殊分支
Break 跳出当前循环
Register 寄存器变量
Const 只读变量
Volatile 说明变量在执行中隐含改变
Typedef 为已有类型数据起别名
Extern 说明变量在其他文件中声明
Return 返回语句
Void 声明函数无返回值或无参数,声明空类型指针
Continue 结束当前循环,开始下一循环
Do 循环语句的循环体
While 循环语句的循环条件
If 条件语句
Else 条件语句的分支
For 循环语句
Goto 无条件跳转语句
Sizeof 计算数据占内存空间大小
Auto 自动变量
先说说定义、声明和缺省吧;定义是编译器创建了一个对象,为此对象分配内存空间并命名。声明是告诉编译器此对象已有内存,此名字已使用。而缺省,表示在定义一个变量时,没有进行初始化和赋值,系统会自动赋值,为缺省值。所以在缺省情况下,编译器会认为变量为auto。
Register 寄存器变量
将所修饰变量存在CPU内的寄存器中,大大提高了存取速度,但其修饰变量的大小小于等于整型。
Static 静态变量
变量:1.静态全局变量:其作用域仅限于定义的本文件中。2.静态局部变量:定义在函数体内,修饰的变量在内存的静态区,函数运行结束后变量也不会销毁
函数:成为静态函数,作用域仅限于本文件中。
Const 只读变量
修饰只读变量,不为const变量分配空间,保存在符号表里;可修饰数组、指针、参数和返回值。
Volatile 说明变量在执行中隐含改变
防止编译器优化而省略,保证内存的可见性,从内存中取值。
Extern 说明变量在其他文件中声明
置于变量或函数前,表明变量或函数定义在别的文件中。
Union 联合数据类型
变量共用一个空间,同一时间只能存储一个数据成员,所有的数据成员具有相同的起始地址,空间大小是最大成员大小。
Struct 结构体
聚合数据类型,和包含多个不同类型的数据。注意空结构体的大小为1;在C99中,结构体中最后一个元素可以未知大小数组——柔性数组 int a[];sizeof返回值中不包含柔性数组的大小,柔性数组的空间用malloc()函数进行动态分配,是用完后用free()进行释放。
Enum 枚举类型
枚举必须为整型常量表达式,其大小为4,sizeof(VAL)=4。
Typedef 为已有类型数据起别名
Typedefstruct Student
{
….
}Stu_st,*Stu_p;
Typedef为结构体struct Student起别名为Stu_st,为它的指针起别名为Stu_p。
其实这些关键字在程序编写过程中挺重要的,也很好用。作为初学者,能在自己的程序中使用这些关键字去完善编写的程序,对C语言的学习和编程能力深入和提高。每一种语言都有其有趣的未知,会让我们学无止境!