1、数据类型关键字(12个)

(1) char :声明字符型变量或函数

  注:char 占一个字节,也就是 8 个二进制位,但它表示的是有符号的类型,所以表示的范围是 -128~127 ;uchar 表示无符号的类型,所以表示的范围是 0~255

(2) double :声明双精度变量或函数

 注:double 占的字节:16 位编译器下,double 占 8 个字节;32 位编译器下,double 占 8 个字节;64 位编译器下,double 占 8 个字节。 

(3) enum :声明枚举类型

 注:enum 是计算机编程语言中的一种数据类型。枚举类型:在实际问题中,有些变量的取值被限定在一个有限的范围内。例如,一个星期内只有七天,一年只有十二个月,一个班每周有六门课程等等。如果把这些量说明为整型,字符型或其它类型显然是不妥当的。为此,C语言提供了一种称为“枚举”的类型。在“枚举”类型的定义中列举出所有可能的取值,被说明为该“枚举”类型的变量取值不能超过定义的范围。应该说明的是,枚举类型是一种基本数据类型,而不是一种构造类型,因为它不能再分解为任何基本类型。

(4) float :声明浮点型变量或函数

 注: float 是C语言的基本数据类型中的一种,表示单精度浮点数,占 4 个字节。

(5) int : 声明整型变量或函数

 注:数据类型占内存的位数与操作系统的位数以及编译器有关,一般情况下在当前主流的编译器中int 类型无论在 32 位或 64 位系统中都是 4 个字节。

(6) long :声明长整型变量或函数

 注:C语言中 long 是4个字节,是一种数据类型,有两种表现形式:有符号和无符号。

在有符号中,long 的表示数的范围为:-2147483648~2147483647

在无符号中,long 的表示数的范围为:0~4294967295

  

(7) short :声明短整型变量或函数

 注:short 是占两个字节。short 在C语言中是定义一种整型变量家族的一种,short  i ;表示定义一个短整型的变量 i 。

依据程序编译器的不同short定义的字节数不同。标准定义short短整型变量不得低于16位,即两个字节。编译器头文件夹里面的limits.h定义了short能表示的大小:SHRT_MIN~SHRT_MAX。在32位平台下如windows(32位)中short一般为16位。

(8) signed :声明有符号类型变量或函数

 注:signed 是默认的,表示这个变量是有符号的,可以存储整数和负数。
       signed 存储符号是有代价的,代价就是存储空间中的一个比特位专门用来存储符号,这一位不能表示数值。一般来说,同类型的 signed 能够存储的数的绝对值大小要小于 undigned 。
 

(9) struct :声明结构体变量或函数 

 注:在C语言中,可以使用结构体( Struct )来存放一组不同类型的数据。

结构体的定义形式为: struct 结构体名{结构体所包含的变量或数组};

结构体是一种集合,它里面包含了多个变量或数组,它们的类型可以相同,也可以不同,每个这样的变量或数组都称为结构体的成员( Member )。

例:

(10) union :声明共用体(联合)数据类型

注:C语言中的 union 是联合体,就是一个多个变量的结构同时使用一块内存区域,区域的取值大小为该结构中长度最大的变量的值。

(11) unsigned :声明无符号类型变量或函数

 注:整型的每一种都有无符号( unsigned )和有符号( signed )两种类型( float 和 double 总是带符号的)  

在默认情况下声明的整型变量都是有符号的类型( char 有点特别),如果需声明无符号类型的话就需要在类型前加上 unsigned 。  

无符号版本和有符号版本的区别就是无符号类型能保存 2 倍于有符号类型的数据,比如 16 位系统中一个 int 能存储的数据的范围为 -32768~32767 ,而 unsigned 能存储的数据范围则是 0~65535。

(12) void :声明函数无返回值或无参数,声明无类型指针(基本上就这三个作用)

 注:void 被翻译为"无类型",相应的 void  * 为"无类型指针"。常用在程序编写中对定义函数的参数类型、返回值、函数中指针类型进行声明。

2、控制语句关键字(12个):

A循环语句

(1) for :一种循环语句

 注:for 是C语言中的一个关键字,主要用来控制循环语句的执行 

例:

a=0 是初始化部分;a<100 是循环判断条件部分(当满足此条件时才进入执行 for 循环中的语句);a++ 是执行完循环体语句后的操作 , b++ 是循环体语句。

(2) do :循环语句的循环体

  注:C语言中 do 是执行某代码块的意思,do 关键字不能单独使用,通常用在 do...while
循环中。

在C语言中,do...while 循环是在循环的尾部检查它的条件,do...while 循环与 while 循环类似,但是 do...while 循环不管是真是假都要确保至少执行一次循环。

(3) while :循环语句的循环条件

  注:while 语句创建了一个循环,重复执行直到测试表达式为假或0。

while 语句是一种入口条件循环,也就是说,在执行多次循环之前已决定是否执行循环。因此,循环有可能不被执行。

循环体可以是简单语句,也可以是复合语句。

(4) break :跳出当前循环

 注:C 语言中 break 语句有以下两种用法:

  1. 终止,且程序流将继续执行紧接着循环的下一条语句。当 break 语句出现在一个循环内时,循环会立即
  2. 它可用于终止 switch 语句中的一个 case 。

如果您使用的是嵌套循环(即一个循环内嵌套另一个循环),break 语句会停止执行最内层的循环,然后开始执行该块之后的下一行代码。

(5) continue :结束当前循环,开始下一轮循环

 注:continue 跳过本次循环,进入下一次。而 break 是直接跳出循环。

比如 for 循环,遇到 contimue 生效后,直接重新执行 for 的表达式,也就是本循环中 continue 下面的语句就不执行,跳过循环中的一次。

contimue 其作用为结束本次循环。即跳出循环体中下面尚未执行的语句,对于 while 循环,继续求解循环条件。而对于 for 循环程序流程接着求解 for 语句头中的第三个部分 expression 表达式。

continue 语句只结束本次循环,而不终止整个循环的执行。而 break 语句则是结束整个循环过程,不再判断执行循环的条件是否成立。

B条件语句

(1) if : 条件语句

 注:if  (表达式) {语句;}

        用于单分支选择结构;

        如含有交叉关系,使用并列的if语句;
       

(2) else :条件语句否定分支(与 if 连用)

 注: if (表达式) {语句;}    else  {语句;} 

        在C语言中 else 是与 if 一起使用的一个关键字,表示如果满足if条件则不执行 else ,否则执行else 。

(3) goto :无条件跳转语句

 注:goto 语句可以使程序在没有任何条件的情况下跳转到指定的位置,所以 goto 语句又被称为是无条件跳转语句。

 使用 goto 语句只能 goto 到同一函数内,而不能从一个函数里 goto 到另外一个函数里。

 不能从一段复杂的执行状态中的位置 goto 到另外一个位置,比如,从多重嵌套的循环判断中跳出去就是不允许的。

 应该避免向两个方向跳转。这样最容易导致"面条代码"。

C开关语句

(1) switch :用于开关语句

 注:switch 语句也是一种分支语句,常常用于多分支的情况。

(2) case :开关语句分支

 注:case 常量表达式只是起语句标号作用,并不是该处进行条件判断。在执行 switch 语句时,根据 switch 的表达式,找到与之匹配的 case 语句,就从此 case 子句执行下去,不在进行判断,直到碰到 break 或函数结束为止。

c语言中 case 是和 switch 一起使用的,构成 switch—case 语句,进行判断选择,case 是用来表示选择结构的。

(3) default :开关语句中的“其他”分支

 注:default 的作用就是switch语句里所有的 case 都不成立时所要执行的语句。

        default 关键字用来标记switch语句中的默认分支。

D返回语句

return :子程序返回语句(可以带参数,也看不带参数)

 注:return 表示把程序流程从被调函数转向主调函数并把表达式的值带回主调函数,实现函数值的返回,返回时可附带一个返回值,由 return 后面的参数指定。

3、存储类型关键字(4个):

(1)auto :声明自动变量 一般不使用 

(2) extern:声明变量是在其他文件正声明(也可以看做是引用变量)

 注:extern 用在变量或函数的声明前,用来说明“此变量/函数是在别处定义的,要在此处引用”。

(3) register :声明积存器变量

 注:用 register 声明的变量是寄存器变量,是存放在CPU的寄存器里的。而我们平时声明的变量是存放在内存中的。虽说内存的速度已经很快了,不过跟寄存器比起来还是差得远。

寄存器变量和普通变量比起来速度上的差异很大,毕竟CPU的速度远远大于内存的速度。寄存器有这么两个特点,一个是运算速度快,一个是不能取地址。

(4) static :声明静态变量

 注:static 关键字不仅可以用来修饰变量,还可以用来修饰函数。在使用 static 关键字修饰变量时,我们称此变量为静态变量。静态变量的存储方式与全局变量一样,都是静态存储方式。静态变量属于静态存储方式,属于静态存储方式的变量却不一定就是静态变量。

4、其它关键字(4个):

(1) const :声明只读变量

 注:const 是 constant 的缩写,意思是“恒定不变的”!它是定义只读变量的关键字,或者说 const 是定义常变量的关键字。 

(2) sizeof :计算数据类型长度

 注:sizeof 的作用就是返回一个对象或者类型所占的内存字节数。返回值类型为 size_t ,在头文件stddef.h 中定义 

(3) typedef :用以给数据类型取别名

 注:在C语言中,除系统定义的标准类型和用户自定义的结构体、共用体等类型之外,还可以使用类型说明语句 typedef 定义新的类型来代替已有的类型。 

(4) volatile :说明变量在程序执行中可被隐含地改变

 注:volatile 是一个类型修饰符(type specifier),就像我们熟悉的 const 一样,它是被设计用来修饰被不同线程访问和修改的变量; volatile 的作用是作为指令关键字,确保本条指令不会因编译器的优化而省略,且要求每次直接读值。
 

Logo

为开发者提供学习成长、分享交流、生态实践、资源工具等服务,帮助开发者快速成长。

更多推荐