相对于其他语言来说,C语言的语言关关键字算是少的了。在C98中关键子总共只有32个,我们来分析一下每个关键字在C语言中它独特的键字作用 。
1 、详解关于数据类型的语言关关键字
(1) char :声明字符型变量或函数
(2) double :声明双精度变量或函数
(3) enum :声明枚举类型
enum类型可以增加可读性,可移植性;在enum中定义的每个对象,默认都是从0开始,当然也可以自定义。如下:
enum Color{RED,键字BLACK,WHITE};
enum Number{ONE=1,TWO,THREE};
Color中RED=0,BLACK=1,WHITE=2;
Number中ONE=1,TWO=2,THREE=3;
(4) float:声明浮点型变量或函数
(5) int: 声明整型变量或函数
(6) long :声明长整型变量或函数
(7) short :声明短整型变量或函数
(8) signed:声明有符号类型变量或函数
(9) struct:声明结构体变量或函数
结构体struct可以用来实现C语言的封装,继承,多态等等。
(10) union:声明共用体(联合)数据类型
union类型可以用来提高内存的详解使用率,如下:
int main(){union Unoin{int a;float b;char *c;};union Unoin p;p.a = 100;/*执行语句1*/p.b = 10.0;/*执行语句2*/p.c = "hello world!";/*执行语句3*/return0;}
如果不使用union,我们需要分别定义int,float,cahr*,需要占用12字节的内存空间,但是当我们使用union时,只需要占用4字节即可;但是需要注意的时,我们在上面那个代码中执行语句2或者3中需要用到int a时,就无法使用union了,必须单独定义int a;否则读出的a值将会错误的。
(11) unsigned:声明无符号类型变量或函数
(12) void :声明函数无返回值或无参数,声明无类型指针(基本上就这三个作用)
2 、语言关关于控制语句的键字关键字
循环语句
(13) for:一种循环语句(可意会不可言传)
(14) do :循环语句的循环体
(15) while :循环语句的循环条件
条件判断语句
(16)if: 条件语句
(17)else :条件语句否定分支(与 if 连用)
(18)switch :用于开关语句
(19)case:开关语句分支
(20)default:开关语句中的“其他”分支
在case...switch语句中,当一个条件输入,从满足条件的那个case语句开始执行,直到遇到跳转指令(break;return;goto;contine;),所以建议在每条case语句后面加上break,除非你是刻意不那么做的 。
跳转语句
(21)goto:无条件跳转语句
用goto语句可以保证程序存在唯一的详解出口,避免了过于庞大的if嵌套,但是随意使用goto语句就会对程序带来很大的隐患(可能会跳过变量的初始化、重要的语言关计算语句等),影响代码的健壮性和可读性。所以不推荐过多地使用。键字
(22) continue:结束当前循环,开始下一轮循环
(23) break:跳出当前循环
(24)return :子程序返回语句(可以带参数,也可以不带参数)
在return语句之后函数中的详解所有指令都不会执行,所以需要确保在return语句之前执行完必要的指令。
3、语言关关于存储类型的键字关键字
(25)auto :声明自动变量 一般不使用,因为当我们声明一个局部变量是默认就是auto
(26)extern:声明变量是在其他文件正声明(也可以看做是引用变量),一般也需要经常使用,因为在C语言里面,全局变量和函数都是默认extern的属性
(27)register:声明寄存器变量,声明为register的变量是存放在CPU的寄存器里面的,所以读取速度非常快,但是数量有限,当定义的多个register变量,编译器多的那些register变量转换为auto变量。
(28)static :声明静态变量
a、详解当我们把一个全局变量声明为static时:只有它的作用范围变为本源文件,也就是属性由external变为internal,其它不变;
b、当我们把函数声明为static时:它的作用范围变为本源文件,也就是属性由external变为internal;
c 、当我们把局部变量声明为static时:默认初始化值为0,并且只在第一次定义时初始化;内存存储区域不再是栈,而是在静态存储区;生命周期不再是所在函数,而是整个进程;其它不变。
4 、其它一些关键字
(29)const :声明只读变量
由const声明的变量,必须在定义时进行初始化