栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > C/C++/C#

C语言学习记录2022.6.1全面了解操作符和整型提升

C/C++/C# 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

C语言学习记录2022.6.1全面了解操作符和整型提升

1、关于sizeof的注意要点(图片来自比特科技):

上图中代码的打印结果为2和0。第一个为2的原因是短整型变量s所占空间为2字节,第二个为0是因为在上一步的“s = a + 5”表达式中只是一个形式,并没有真正赋值,所以变量s的值还是0。

2、按位取反:

3、强制类型转换

4、关于逻辑与的注意点:

上图中,逻辑与“&&”的运算方式是从左往右的,首先算a++,a为0 ,然后碰到&&操作符,因为&&左边已经是0了,后面便不会再算了。算完&&接着a再自加1变成了1,因为第一个&&后面没有计算,所以b,c,d分别为2,3,4。

5、和逻辑与类似,逻辑或也有上述特点:

逻辑或也是从左向右计算碰到一个为真,那么后面的算式就不会再计算了。

6、条件操作符

第128行的条件操作符跟120-126行的if...else语句运行效果相同。

7、逗号表达式

逗号表达式是从左到右依次生效的,整个表达式的结果是最后一个表达式的结果。

8、结构体

结构体的使用方法如上。

还有一种简便的指针使用方法如下:

 上述代码的183-184行表达的意思与上上张图片中代码182-183行的代码相同,是其简洁的使用方法。作用是ps指向的结构体对象的成员名。

9、关于整型提升

整型提升的意思是如果我们在定义变量类型的时候使用的是char或short类型,在实际计算机运算的时候是会把它先编程32位(4字节)的普通整型来运算,这是由计算机内ALU决定的。在进行整型提升的时候,提升的位数由最高位的符号决定的(当为有符号数时)。

用以证明整型提升的例子1:

上图中代码被打印的只有“c”,因为a和b都发生了整型提升,已经与原来赋值的不匹配了,所以无法打印。 

体现整型提升的例子2(图片来自比特科技):

10、C操作符的优先级(图片来自菜鸟教程)

说明:上表中的“结合性”的意思是,操作符计算的方向,如a+b+c就要先算a+b,然后a+b+c。我们在写表达式的时候一定要保证表达式的计算路径的唯一性,也就是在不同的编译器上我们得到的结果应该是一样的,不然写出来的表达式有歧义就没有意义了,因为这样写出的代码的移植性较差。另外,我们也不必特意去记操作符的优先级,我们可以把复杂的表达式分成几个简洁的表达式来依次写出,或者可以用()操作符来提升我们的运算优先级,让自己也清楚地知道运算的方向。

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/942429.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号