时间:2017-6-27来源:本站原创作者:佚名

C语言32个关键字如下图:

一、基本数据类型

1、unsigned:无符号的---用来声明一个无符号的变量

例如:unsignedcharvar;//var的范围:0~

2、signed:有符号的(可以省略不写)---用来声明一个有符号的变量

例如:signedcharvar;//var的范围:-~

3、char:字符型---用来声明一个字符型变量,占一个字节(8bit)空间

例如:charvar=1;//var的范围:-~

4、int:整型---用来声明一个整型变量,C51:占两个字节空间,ARM:占四个字节

例如:intvar=1;

5、float:浮点型---用来声明一个浮点型(实型)变量,最多能表示到7个有效数据位,占四个字节空间。

例如:floatvar=1.23;

6、double:双精度型---用来声明一个双精度实型变量,最多能表示到15~16个有效数据位,占四个字节空间,有的系统占八个字节.

例如:doublevar=2.;

7、short:短整型---用来声明一个短整型变量,C51:跟int一样,ARM:占两个字节

例如:shortvar=1;

8、long:长整型---用来声明一个长整型变量,ARM:跟int一样,C51:占四个字节

例如:longvar=1;

9、void:空型----表示一个函数没有返回值,或者无形参

例如:voidfunction(void);

二、构造数据类型

1、struct---用来声明一种结构体类型

例如:

structstu

{

charsex;

intage;

floatscore;

structstu*Next;

};

structstuvar;

2、union---用来声明一种共用体类型

例如:

unionnon

{

  charsex;

  intage;

  floatscore;

};

unionnonvar;

3、enum---用来声明一种枚举类型,规定枚举类型的变量,只能在限定的范围内取值,否则,编译会出现警告

例如:

enumem

{

a=23,

b,

c,

d=56,

e

};//b=24,c=25,e=57

enumemvar;

三、数据的存储类别

1、auto:自动的(一般省略不写)---定义一个局部变量,默认为auto类型的,当它所在的函数调用结束时,释放内存使用时才分配内存,用完即释放。

例如:autocharvar;

2、static:静态的

①定义一个局部变量,该变量在定义时只进行一次初始化,以后每次调用它所在的函数,其值都会保持上一次调用的结果,它所在的空间不会被释放

②被static修饰的全局变量,则只能在它所在的C源文件中使用,其它文件不能调用,(内部全局变量)

③被static修饰的函数,只能在该函数所在的C源文件中被调用,其它文件不能调用,(内部函数)

例如:

staticcharvar;

staticvoidfunction();

3、extern:外部的

①想要调用别的C源文件中的某一个全局变量,可以使用该关键字在该文件中修饰声明该变量即可调用(前提是该变量没有被static修饰)该类型的变量也是一直占着内存不释放

②想要调用别的C源文件中的某一个函数,可以使用该关键字在该文件中修饰声明该函数即可调用(前提是该函数没有被static修饰)

例如:

externcharvar;

externvoidfunction();

4、register:寄存器的

被这个关键字修饰的变量,建议编译器将该变量在使用时放到CPU内部寄存器中,以提高执行效率

注意:该关键字只是建议,到底有没有将变量放到寄存器中无从得知。一般使用在循环次数比较多的地方。在使用时才分配内存,用完即释放

例如:

registerlongi=;

5、const:常的

常变量:被const关键字声明的变量,其值不能被改变。即在声明该变量时必须要初始化该变量。

var本身还是一个变量。

constcharvar=;

例如:

char*constp;

//指针变量p不可改变,但是它指向的地址里面的值可变

charconst*p;或constchar*p;

//指针变量p可以改变,但是它所指向的地址里面的值不能改变

constchar*constp;

//p地址不可改变,里面的值也不能变

6、volatile:随时会改变的

被volatile修饰的变量或寄存器会意想不到地发生改变。

①某些变量或寄存器(如状态寄存器)可能会受硬件影响;

②在多线程任务中,被其它线程修改(共享内存段);

③编译器会对C程序进行优化;

为了保证程序不被优化,保证CPU取到的数据是最新的(即提醒CPU每次都必须到内存中取出变量当前的值而不是取cache或者寄存器中的备份),使用该关键字修饰。

四、9条语句

四种结构:

1、顺序结构:0条

2、选择结构:2条

①、if-elseif-elseif...else

例如:

if(表达式1)

{

语句s;

}

elseif(表达式2)

{

语句s;

}

elseif(表达式3)

{

语句s;

}

else

{

语句s;

}

用法:顺序判断if后的表达式是否为真如果碰到为真的情况,则执行其下面的{}里的语句执行完后,即退出这个多选一的结构。

②、switch-case-break

例如:

switch(变量)

{

case常量1:语句;...;break;

case常量2:语句;...;break;

case常量3:语句;...;break;

default:语句;

}

用法:顺序判断变量是否与常量相等,如果相等,则执行该常量:后的语句s,遇到break即跳出这个结构。

3、循环结构:3条

①、for

例如:

for(语句1;语句2;语句3)

{

语句4;

语句...;

}

用法:语句1:条件初始化,语句2:判断语句,判断是否成立,语句3:增值语句先执行语句1,再进行对语句2的判断,如果成立则执行{}里的语句4...,再执行语句3,在判断语句2是否依然成立,。当语句2不成立时,结束循环。

②、while

例如:

while(表达式)

{

语句;

....;

}

用法:先判断“表达式”是否成立,如果成立则执行{}里的语句,执行完再次判断“表达式”是否依然成立,成立则继续执行{},不成立则结束此循环结构。

③、do-while

例如:

do

{

语句1;

...;

}while(表达式);

用法:先执行{}里的语句,执行完后,判断表达式是否成立,如果成立,继续执行{};如果不成立,则结束循环。

4、转移结构:4条

①、break

例如:

while(t--)

{

dat++;

if(dat==3)

break;//跳出while()结构。

}

用法:仅用于跳出循环结构,且仅能跳出一层循环结构。

②、continue

例如:

charbuf=10;

while(buf--)

{

a++;

b++;

continue;//遇到continue则结束这次循环

d++;//这条永远都不会执行到

  e++;//这条永远都不会执行到

  }

  用法:用于终止本次循环,继续从下次循环开始。

  ③、goto

  例如:

  unsignedchardat=10;

  while(dat--)

  {

    a++;

    b++;

Lable:c++;

  if(c==3)

  gotoLable;//直接跳到Lable标号去

  d++;

  }

  用法:无条件转移,直接跳到Lable标号去运行。

  ④、return

  例如:

  voidfunction()

  {

    chara,b;

    a++;

    return;//遇到return即返回调用处

    b++;//不会被执行

    return;//不会被执行

  }

用法:用于函数返回,在函数调用时,遇到return即返回。如果需要返回某个值,在其后加上返回值。返回值类型必须和函数类型一致。

五、其它:

1、typedef:类型重定义(重新起名)

例如:

typedefunsignedcharuchar;

//用uchar重新定义unsignedchar

2、sizeof---用来求类型所占的字节数

例如:

intvar=10;

charg;

g=sizeof(var++);//g=4;

免责声明:本文系网络转载,版权归原作者所有。如涉及版权,请联系删除!

如果喜欢这篇文章,欢迎在文章底部点赞,欢迎







































北京哪家医院专治白癜风
白癜风最新治疗办法

转载请注明原文网址:http://www.gzdatangtv.com/bbqb/7332.html

------分隔线----------------------------