C 语言的 32 个关键字、9 种控制语句、34 个运算符
一、C 语言的关键字共有 32 个,根据关键字的作用,可分其为数据类型关键字、控制语句
关键字、存储类型关键字和其它关键字四类。
【1】数据类型关键字(12 个)
(1) char :声明字符型变量或函数
(2) double :声明双精度变量或函数
(3) enum :声明枚举类型
(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:声明积存器变量
(4)static :声明静态变量
【4】其它关键字(4 个)
(1)const :声明只读变量
(2)sizeof:计算数据类型长度
(3)typedef:用以给数据类型取别名(当然还有其他作用
(4)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);
b=(++a)+(a++);
注意:int d=10++;//这种写法是错误的,因为对常量进行自加和自减没有任何意义。
//a1==10,a2==12,b==22
//a1==11,a2==11,b==22
四、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;