C语言的32个关键字、9种控制语句、34个运算符

xiaoxiao2021-02-28  12

C语言的32个关键字、9种控制语句、34个运算符

删除 参考地址:http://blog.csdn.net/piaoxue820/article/details/6938918 http://www.cnblogs.com/wendingding/p/3675809.html   https://zhidao.baidu.com/question/5485574.html http://blog.csdn.net/doraemon___/article/details/53576585 https://zhidao.baidu.com/question/301641165.html =================================================== C语言的32个关键字和9种控制语句   一、C语言的关键字共有32个,根据关键字的作用,可分其为数据类型关键字、控制语句关键字、存储类型关键字和其它关键字四类。   1 数据类型关键字(12个): (1) char :声明字符型变量或函数  (2) double :声明双精度变量或函数  (3) enum :声明枚举类型  用法: 枚举变量的说明 如同结构和联合一样,枚举变量也可用不同的方式说明,即先定义后说明,同时定义说明或直接说明。 设有变量a,b,c被说明为上述的weekday,可采用下述任一种方式: enum weekday{ sun,mou,tue,wed,thu,fri,sat }; enum weekday a,b,c; 或者为: enum weekday{ sun,mou,tue,wed,thu,fri,sat }a,b,c; 或者为: enum { sun,mou,tue,wed,thu,fri,sat }a,b,c; 11.10.2 枚举类型变量的赋值和使用 枚举类型在使用中有以下规定: 1. 枚举值是常量,不是变量。不能在程序中用赋值语句再对它赋值。 例如对枚举weekday的元素再作以下赋值: sun=5; mon=2; sun=mon; 都是错误的。 2. 枚举元素本身由系统定义了一个表示序号的数值,从0开始顺序定义为0,1,2…。如在weekday中,sun值为0,mon值为1,…,sat值为6。 【例11.10】 main(){ enum weekday { sun,mon,tue,wed,thu,fri,sat } a,b,c; a=sun; b=mon; c=tue; printf("%d,%d,%d",a,b,c); } 说明: 只能把枚举值赋予枚举变量,不能把元素的数值直接赋予枚举变量。如: a=sum; b=mon; 是正确的。而: a=0; b=1; 是错误的。如一定要把数值赋予枚举变量,则必须用强制类型转换。 如: a=(enum weekday)2; 其意义是将顺序号为2的枚举元素赋予枚举变量a (4) float:声明浮点型变量或函数  (5) int: 声明整型变量或函数  (6) long :声明长整型变量或函数  (7) short :声明短整型变量或函数  (8) signed:声明有符号类型变量或函数  (9) struct:声明结构体变量或函数  (10) union:声明共用体(联合)数据类型  (11) unsigned:声明无符号类型变量或函数  (12) void :声明函数无返回值或无参数,声明无类型指针(基本上就这三个作用)   2控制语句关键字(12个): A循环语句  (1) for:一种循环语句(可意会不可言传)  (2) do :循环语句的循环体  (3) while :循环语句的循环条件  (4) break:跳出当前循环  (5) continue:结束当前循环,开始下一轮循环  B条件语句  (1)if: 条件语句  (2)else :条件语句否定分支(与 if 连用)  (3)goto:无条件跳转语句  C开关语句  (1)switch :用于开关语句  (2)case:开关语句分支  (3)default:开关语句中的“其他”分支  D返回语句 return :子程序返回语句(可以带参数,也看不带参数)   3 存储类型关键字(4个) (1)auto :声明自动变量 一般不使用  (2)extern:声明变量是在其他文件正声明(也可以看做是引用变量)  (3)register:声明积存器变量  用法:

关键字registe请求编译器尽可能的将变量存在CPU的寄存器中。有以下几点注意的地方。

register的使用是有限制条件的,这个体现在具体硬件上。

每个函数中只有很少的变量能够存放在寄存器中,而且,只是确定的类型可以存放在寄存器中。过多的使用寄存器变量并没有坏处,然而,由于“register”会被忽略的。

特别注意:不能用&取地址符号,去获取一个register变量的地址,无论这个变量是否被实际得存放在寄存器里了

register变量必须是能被CPU寄存器所接受的类型,这通常意味着register变量必须是一个单个的值,并且其长度应小于或等于整型的长度。但是,有些机器的寄存器也能存放浮点数。

register变量可能不存放在内存中,所以不能用取址符运算符“ & ”。

只有局部变量和形参可以作为register变量,全局变量不行。

静态变量不能定义为register。 (4)static :声明静态变量

4 其它关键字(4个): (1)const :声明只读变量  (2)sizeof:计算数据类型长度  (3)typedef:用以给数据类型取别名(当然还有其他作用  (4)volatile:说明变量在程序执行中可被隐含地改变 注意:volatile的作用是告知编译器,它修饰的变量随时都可能被改变,因此,编译后的程序每次在使用该变量的值时,都会从变量的地址中读取数据,而不是从寄存器中获取。 二、C语言中的9中控制语句 goto语句:无条件转向;  if语句:判断语句;  while循环语句;  do-while语句:先执行循环体,然后判断循环条件是否成立. 之后继续循环;  for语句:循环,可替代while语句; 只是用法不同;  break语句跳出本层的循环;(只跳出包含此语句的循环)  continue语句:继续(一般放到循环语句里,不在执行它下面的语句,直接跳到判断语句例:for语句,就直接跳到第二个分号处,while语句,就直接跳到while()的括号里; switch语句:多相选择;  return语句:返回; 三.C语言运算符(34个) 一、算术运算 C语言一共有34种运算符,包括常见的加减乘除运算。 ①. 加法:+ 还可以表示正号 ②. 减法:- 还可以表示负号 ③. 乘法:* 非数学意义上的X ④. 除法:/  注意1/2的值为0而非0.5 ⑤. 取余(模运算):两个整数相除之后的余数(注意两边都必须是整数,带符号只和左值有关)   注意点: ①. Int a=10.8;//数据精度丢失警告。结果为10——自动类型转换 ②. Int a=(int)10.8;//无警告。把10.8强制转换为整型——强制类型转换 ③. Double c=10.6+6//结果为16.600000。在计算机中,拿两个数值进行运算,则运算符两边的数值需要类型相同,如果不同则进行自动类型提升。即把6转为6.000000后再参与运算。 ④. 参与运算的两个数是什么类型,那么其结果就是什么类型。int a=10/3结果为3,double b=10/3结果为3.000000;double c=10.0/3结果为3.333333。要求精确值可以进行强制类型转换。double d=(double)3/2把3转换为double类型变为3.000000,之后2进行自动类型提升转变为2.000000参与运算,结果为1.500000。也可以写成3/(double)2。这种情况需要注意与对整体进行强制转换的区别 double e=(double)(3/2)是先计算3/2的值为1再对1进行强制类型转换,结果为1.000000。 二、赋值运算 (一)简单赋值 Int a=10+5;a=b=10;//从右向左,左边不能为常量 (二)复合赋值 a=a+5;=>a+=5; a=a*5;=>a*=5; a+=5*6+4;=>a=a+(5*6+4) 提示:预算顺序取决于两点:一是运算符的优先级,二是结合的顺序。 三、自增自减运算 Int a=10; 把a的值加1有四种方法: ①. a=a+1; ②. a+=1; ③. a++; ④. ++a; 简单区分a++和++a。 Int b; Int a=10; b=++a; //a==11,b==11;a先把值加1为11,再赋值给b b=a++; //a==11,b==10;a先把值10复制给b,a自己再加1为11 b=(a++)+(++a);  //a1==10,a2==12,b==22 b=(++a)+(a++);  //a1==11,a2==11,b==22 注意:int d=10++;//这种写法是错误的,因为对常量进行自加和自减没有任何意义。 四、Sizeof 作用:用来计算变量,常量或者是一种数据类型所占的内存字节数。 基本形式:sizeof(变量名|常量|数据类型),完成之后返回一个值。 ①. Sizeof 变量|常量 ②. Sizeof (变量|常量) ③. Sizeof (数据类型) 注意:数据类型一定要用括号括起来,不能写成sizeof 数据类型这样的形式。 五、关系运算符  (一)条件判断 默认情况下。在程序中写出的每一句正确的代码都会被执行,但很多时候我们需要在某个条件成立的情形下才执行某一段代码,如登录操作,这种情况可以使用条件语句来完成。  (二)真假 在C语言中,条件成立称为“真”,条件不成立称为“假”。 C语言规定,任何数值都有真假性,任何非零值都为真,只有0才为假,无布尔类型。  (三)关系比较 关系运算的结果只有两种情况,如果条件成立就为真,值为1,如果条件不成立就为假,值为0。有6种运算符,分别是:(1)<  (2)<=  (3) >  (4) >=  (5)==  (6)!=  (四)使用注意 ①. ==和!=优先级相等,其他四个关系运算符的优先级相等,且前者的优先级低于后者。如2==3>1 应该先计算3>1 ②. 关系运算符中,若优先级相同,则“从左往右”结合。如4>3<2,先计算4>3 ③. 关系运算符中的优先级小于算术运算符。如3+4>8-2 相当于(3+4)> (8-2) ④. 练习5!=4+2*7>3==10 先计算5!=18>3==10,5!=1==10,1==10,假 六、逻辑运算符 逻辑运算的结果只有两个:真(0)和假(1) ①. 与   &&   条件1&&条件2 只有的那个条件1和条件2都成立时,才为真否则为假。 ②. 或   ||    条件1 ||条件2  当条件1或条件2中有一个成立时就为真,都不成立时为假。 ③. 非   !  !条件   取反 注意:逻辑运算符在进行运算时,只要能够确定整体的真假性,后面的条件就不再进行而是直接忽略。 Int a=b=10; Int c=(a>5)&&(++b>=11);//此时a==10,b==11,c==1 Int c=(a<5)&&(++b>=11);//此时a==10,b==10,c==0 提示:在进行逻辑运算时,如果搞不清楚各个符号的优先级,可以使用()。 七、三目运算符 双目:需要两个值参与运算 单目:1个数值参与运算  如!5 三目:需要3个数值参与 格式:条件?数值1:数值2  先判断?前的条件,若条件成立则返回数值1,若条件不成立则返回条件2。 要求比较a和b的值,把数值大的存入到c中  c=a>b?a:b 比较a,b,c三个数的值,把最大的值存入到d中 Int  abmax=(a>b)?a:b; d=abmax>c:abmax:c; 阅读全文
转载请注明原文地址: https://www.6miu.com/read-1750082.html

最新回复(0)