前述文章已经介绍了c语言的控制语句(判断/循环/转向),控制语句是c语言程序运行中的指路标,它控制着c语言程序每一步该走向何处,那c语言运算符的意义就是告诉你为什么要走向那里。
运算符是一种告诉编译器执行特定的数学或逻辑操作的符号。C 语言内置了丰富的运算符,并提供了以下类型的运算符:
· 算术运算符
· 关系运算符
· 逻辑运算符
· 位运算符
· 赋值运算符
· 杂项运算符
下面就上述运算符逐一跟大家介绍一下每一种运算符包含哪些运算,其意义及用法如何。
?
算术运算符
算数运算符,顾名思义就是用来做整数的加减乘除的,常用的算数运算符有加、减、乘、除、取余、自加和自减等,其符号和用法如下表格:
需要指出的是,上述算数符中比较容易出错的几种符号用法
1)“%”取余算数符
c语言中%的意思是整数相除取余数,就是计算的结果了,%的运算分三种情况
z=x%y,如果x<y,那程序运算的结果就是z=x,
z=x%y,如果x=y,那程序运算的结果就是z=0,
z=x%y,如果x>y,那程序运算的结果就是x除以y整除后的余数。
2)自加/减(++/--)
以++来说(“--”一样,不作累述),C语言中x++和++x是有区别的。
首先二者的运算过程不同:
x++表示先使用x的值,然后再对x做加1处理;
++x表示先对x做加1处理,然后再使用x的值;
虽然,对于x变量本身来说,x++、++x最终x的值都是自加1,但是对于调用这个变量的其他算数来说意义就不一样了,这里使用的时候是需要非常注意的。
这里给大家举个例子应该就清晰了,定义变量x = 10,那如下算数之后的值分别是
z = x++;运算后 z = 10;x = 11;
z = ++x;运算后 z = 11;x = 11;
?
关系运算符
关系运算符在c语言中一般是用来判断算术或变量的值直接大小关系,并返回真/假判断结果的运算算法,其主要包含如下符号
举个简答的程序例子,定义变量x=10,y=4,z=x-y,如果z等于0,则清除变量x、y的值。
?
逻辑运算符
所谓的逻辑运算符,就是只在条件判断中出现非单一条件的时候,条件与条件之间的处理关系。常用的逻辑运算符如下表
需要注意的是,其中的x/y可以是变量,常数也可以是运算过程。比如:
?
位运算符
位运算符,顾名思义就是作用的位之间的运算,主要运算如下
?
赋值运算符
赋值运算符就是给某个变量分配数值的运算,主要赋值运算符如下
赋值运算符基本是基础赋值与上述算术/逻辑运算符的组合体,所以此处不作展开举例。
? 杂项运算符
杂项运算符没有统一的描述,其作用分别如下
其中Sizeof()和?:可能大家会相对陌生一点,此处稍微展开一下
Sizeof()
sizeof是C语言的一种单目操作符,如C语言的其他操作符++、--等。它并不是函数。sizeof操作符以字节形式给出了其操作数的存储大小。操作数可以是一个表达式或括在括号内的类型名。操作数的存储大小由操作数的类型决定。
1、用于数据类型
sizeof使用形式:sizeof(type); 注:数据类型必须用括号括住。
其结果就是读取类型占用的字节数,比如sizeof(unsigned char) = 1
2、用于变量
sizeof使用形式:sizeof(var_name)或sizeof var_name
变量名可以不用括号括住。如sizeof (var_name),sizeof var_name等都是正确形式。带括号的用法更普遍,大多数程序员采用这种形式。
注意:sizeof操作符不能用于函数类型,不完全类型或位字段。不完全类型指具有未知存储大小的数据类型,如未知存储大小的数组类型、未知内容的结构或联合类型、void类型等。如sizeof(max)若此时变量max定义为int max(),sizeof(char_v) 若此时char_v定义为char char_v [MAX]且MAX未知,sizeof(void)都不是正确形式。
其他复杂的用法此处不作展开,有兴趣的朋友可以一起讨论。
?:运算符
其一般使用的表达式如下
x = exp1? exp2 : exp3
如果exp1为真(非0) ,那么整个条件表达式x的值与exp2的值相同;
如果exp1为假(0),那么整个条件表达式的值x与exp3的值相同;
需要把两个值中的一个赋值给变量时,就可以用条件表达式。典型的例子是,把两个值中的最大值赋值给变量:
max = (a > b) ? a : b;
如果a大于b ,那么将max值设置为a;否则,设置为b.
其作用相当于用if else的条件判断
if (a < b) max = a;
else max = b;
以上为c语言中常用运算符的简单介绍,运算符另外一个最重要的需要注意的地方就是运算的优先级顺序,篇幅有限此处不作介绍,如果大家有兴趣可在评论区留言,如果需求的孩童们比较多作者会专门开一章节介绍运算符的优先级及注意事项。