今天继续学习操作符
1、赋值操作符
赋值操作符进行的操作,我们称之为赋值操作。赋值操作与初始化有所不同:创建变量的同时对变量进行赋值,这叫作变量的初始化;单纯对变量进行赋值,才是赋值操作。
赋值操作符可以与其它操作符复合使用,形成复合赋值符,如+=、-=、/=等等,这里不多做赘述。
2、关系操作符
关系操作符,顾名思义,是用来判断操作数之间的关系,如相等“==”和不相等“!=”。
写代码时特别容易出错的一点就是容易将赋值操作符与判断相等的操作符弄混,所以一定要注意区分“=”和“==”
关系操作符运算两个操作数后有两个可能值:0和1。0表是假,即关系不成立;1表示真,即关系成立。
3、逻辑操作符
逻辑操作符有两种:逻辑与&&和逻辑或||
&&:逻辑与操作,两侧同时为真方为真,一侧为假则为假
||:逻辑或操作,两侧同时为假方位假,一侧为真则为真
基于此,逻辑操作符有一个很有趣的运算规则:
当&&左侧为假时,右侧便不再计算;当||左侧为真时,右侧便不再计算。我们可以通过两段代码来进行验证:
我们可以看到输出结果为1 1 2.这说明只有a++得到了运算,而b++和++c都没有执行,即&&左侧为假时,右侧便不再计算。
逻辑或||的验证亦是如此。
4、单目操作符
以下介绍一些单目操作符:
!:逻辑反操作。在C语言中,0表示假,非0表示真。比如说,1表示真,但如果用上逻辑反操作,!1,这个就表示假。
sizeof:计算变量所占内存的大小,单位是字节。sizeof是一个操作符,而不是库函数,因此sizeof的使用不需要引头文件,甚至sizeof使用的时候都不需要加上括号,例子如下:
当然,计算数据类型大小的时候则必须加上括号。其实,不能说是计算数据类型所占内存的大小,因为数据类型是不占内存的,而是计算以该数据类型创建的变量所占内存的大小。
5、其它一些操作符
三目操作符:a?:b:c
这个三目操作符的含义是,如果a为真,则b的值是整个表达式的值;如果a为假,则c的值是整个表达式的值。
逗号表达式:(a,b,c)
在逗号表达式中,括号内的各个表达式,从左向右依次执行,最后一个表达式的值是整个逗号表达式的值。
在逗号表达式的运算中,不能直接跳过前面的表达式,而直接计算逗号表达式中最后一个表达式的值,因为之前的表达式可能会对最后一个表达式造成影响,进而影响整个逗号表达式的值。例子如下:
如果只看逗号表达式中的最后以表达式,会错误地认为输出结果是2。但实际上,a++是会影响到a的值,即影响到整个逗号表达式的值,因而最后输出的结果应为3。
今天的C语言学习就记录到这里,最后借张闻天之言以自勉:生命如流水,只有在急流与奔向前去的时候,才美丽,才有意义。