运算符有优先级,比如在加减乘除中,乘除优先,然后,加减。在写代码的时候,我们需要时刻提醒自己,我们写的代码不是给机器看的,而是给人看的。我们需要和同事沟通,一起工作。所以对于一些想要先运行的代码,我们会用“括号”来包含,括号里的代码会先运行。
例如c = a1 | | a2+b;我们想先做a1 || a2运算,然后把a1 || a2表达式的结果加到B上,最后把运算结果赋给C对象。但在C语言中,由于运算符优先级的规则,算术运算符的优先级高于关系运算符,所以先运行a2+b运算,然后将a2+b表达式的值与a1进行逻辑或运算。以下测试是示例:
测试结果如下:
可以看出,先执行a2+b运算,这个表达式的值是16。然后,16的值与a1进行逻辑或运算,因此结果为1。
我们想先执行a1 || a2运算,所以必须将它包含在括号中,以确保括号中的代码优先,所以修改如下:
int c =(a1 | | a2)+b;
完整的测试代码如下:
测试结果如下:
注意:我们不提倡在代码中使用C语言的默认运行优先级。如果我们想让某一行代码先运行,我们必须用括号把它括起来,让括号里的代码先运行。
6 sizeof运算符sizeof运算符是在C语言中定义的,它是一个单目运算符,用法如下:
Sizeof(T) - T可以是数据类型或变量。
此时,获取T类型(或变量)占用的内存容量,单位为字节。例如,long类型在空之间占用4个字节,因此sizeof(long)得到long类型在空之间占用的大小,并得到4个这样的值。程序测试示例如下:
程序运行结果如下:
如您所见,sizeof运算符返回long类型的内存容量大小。Sizeof运算符还可以获得一个变量所占用的内存容量。程序测试示例如下:
程序运行结果如下:
可以看到,定义了double类型的变量D,然后通过sizeof()运算符可以得到该变量占用的内存容量。
总结在本章中,我们学习了按位与、或、异或和条件运算符、赋值运算符等运算。
这些知识点纷繁复杂,所以作者建议读者多做,多思考。对于有疑问的知识,尽量通过测试实例来验证。自己敲代码,思考问题,验证问题。有问题可以联系作者,一起探讨C语言的学习。
读者要认真分析和掌握每一个知识点,然后总结出自己对该知识点的理解。你总结出来的知识,能深入理解,就是你掌握的知识。
最新评论