LinuxC预习第三章运算符和表达式

内容较少,但是还是遇到了一些以前没考虑过的问题。

1、符号优先级
里面讲了常犯错误,我以前一直好奇 int i = 1,2;这种语句到底怎么赋值,现在明白了只是个简单的符号优先级问题。

2、了解了个人不常用的条件符号表达式
条件运算符的优先级低于关系运算高于赋值符号,所以可以在给变量值的时候右边直接跟条件符号表达式。
条件符号表达式的结合方向是从右到左,和赋值一样。

3、++、——操作符号的使用
遇到事的问题是这个

int i =3;
(++i)+(++i)+(++i);

问第二行表达式的值是多少。答案不是15,这个和实际运算过程有关、
C语言的编译是从右侧开始的,根据编译器的不同有不同的编译方法。
red hat的结果是16 (++i)+(++i);其中编译偷懒,先把i的值计算完毕,也就是两个都是5,右侧结果为10。后续的计算式(++i)+10,也就是6+10所以结果为16.诺编译的时候是三个i一起运算则结果为6+6+6=18了。

4各种各样的位操作
在学校学习的知识里位操作并不多,但是书里位操作很多。除了直接的位操作符号之外,还有用除号和余号的操作。

猜你喜欢

转载自blog.csdn.net/qq_43257912/article/details/82974877