C语言中的32个关键字
一.C语言中的关键字按作用分类,如下图
二.详细介绍
1.数据类型关键字
(1)char:是容纳单字符的一种数据类型,不能存储汉字(一个汉字占两个字节)。如果要存储字符串的话要用String(以’\0’为字符串结束标志),其实String相当于一个char数组,例如,字符串abc 与 a[]={‘a’,‘b’,‘c’,’\0’} 是等价的。
(2)double:将一个变量定义为双精度实型变量,占8个字节,双精度完全保证的有效数字是15位,16位只是部分数值有保证,可以用格式化输入输出语句scanf和printf进行double类型的输入输出,格式化字符为%lf。
(3)float:单精度浮点型,占四个字节,精度为7位,取值范围为3.4 乘 10^-38 到3.4 *乘 10^38
(4)int:整型变量,在不同编译环境有不同的大小,一般占4个字节。
(5)long:长整型,long是long int 的缩写,占4个字节,long的格式化字符为"%ld",unsigned long,无符号长整型,格式化字符为"%lu",在部分编译器下,比如gcc,long long 类型,表示C语言目前最长的系统整型类型,占8字节,格式化字符为"%lld"。
(6)short:短整型,占2个字节。
(7)signed:有符号。
(8)unsigned:无符号。
signed和unsigned用于修饰整数类型,(包括char,从ANSI C89标准开始支持),对应的有符号数的最大取值要比无符号的小约一半,因为最高一位被用来表示符号。
(9)enum:枚举类型,在“枚举”类型的定义中列举出所有可能的取值,被说明为该“枚举”类型的变量取值范围不能超过定义的范围。枚举类型是一种基本数据类型,而不是一种构造类型,因为它不能在分解为任何基本类型。
(10)struct:struct在c语言中是一种结构体,struct是由一系列多种类型的数据构成的数据集合,同时也叫做结构。可以存放不同类型的数据。 在c语言中可以将它定义为多种的结构类型,和数组比较相似。将多个不同的变量包装为一个整体作为使用。 结构体中的变量有些相同有些不同,或者属于完全不同的类型,在c语言中,它不包括函数。
(11)union:共用体。
结构体与共用体
结构体和共用体的区别在于:结构体的各个成员会占用不同的内存,互相之间没有影响;而共用体的所有成员占用同一段内存,修改一个成员会影响其余所有成员。
结构体占用的内存大于等于所有成员占用的内存的总和(成员之间可能会存在缝隙),共用体占用的内存等于最长的成员占用的内存。共用体使用了内存覆盖技术,同一时刻只能保存一个成员的值,如果对新的成员赋值,就会把原来成员的值覆盖掉。
(12)void:声明函数无返回值或无参数,声明无类型指针。
2.控制语句关键字
(1)for:一种循环结构。
(2)do:常与while连用,循环体至少执行一次。
(3)while:循环语句的循环条件。
(4) break:结束整个循环体。
(5)continue:结束单次循环。
(6)if:条件语句。
(7)else:条件语句否定分支,常与if搭配使用。
(8)goto:无条件跳转语句。
(9)switch:开关语句,常与case搭配使用。
(10)case:开关语句分支。
(11)default:default的作用就是switch语句里所有的case都不成立时所要执行的语句。default关键字用来标记switch语句中的默认分支。default关键字用来标记switch语句中的默认分支。
(12)return:return表示把程序流程从被调函数转向主调函数,并把表达式的值带回主调函数,实现函数值的返回,返回时可附带一个返回值,由return后面的参数指定。
3.存储类型关键字
(1)auto:一个自动存储变量的关键字,也就是申明一块临时的变量内存。
(2)extern:c语言中extern通常置于变量或者函数前,以表示变量或者函数的定义在别的文件中,提示编译器遇到此变量和函数时在其他模块中寻找其定义。
(3)register:寄存器变量,存放在CPU内部的寄存器中。
(4)static:主要定义全局静态变量、定义局部静态变量、定义静态函数。
4.其它关键字
(1)const:修饰的数据类型是指常类型,常类型的变量或对象的值不能被更新。
(2)sizeof:计算对象所占的字节数,通常用来查看变量、数组或结构体等所占的字节个数。
(3)typedef:为一种数据类型定义一个新名字。
(4)volatile:本意是“易变的”,volatile定义的变量它的值在编译时是会改变的,跟const相反,而const定义的变量一直不会变的,如果变量加上volatile修饰,则编译器保证对此变量的读写操作都不会被优化(肯定执行)。