#考试酷#A13_Precedence and Order of Evaluation-2

不太懂的题目:10 7


#考试酷#A13_Precedence and Order of Evaluation-2
x/y=1
f = y+ x/=1
= 2+2=4


#考试酷#A13_Precedence and Order of Evaluation-2
注意y==1是判断句
1 && 0=0


#考试酷#A13_Precedence and Order of Evaluation-2
又来了
赋值符号比逻辑符号优先
所以相当于 z= 1 & 1;
所以z=1


#考试酷#A13_Precedence and Order of Evaluation-2
floating point exception——浮点数例外
这个错误什么时候出现呢?

1、高版本GCC编译的程序在低版本GCC的环境下运行会出现这个错误;
2、程序中出现除0的情况,这种情况可用GDB调试找到问题代码,这里就不赘述了;

这里显然是第二种情况啦,因为y%=2的时候会得到0,而0又要作为x的除数


#考试酷#A13_Precedence and Order of Evaluation-2
<<是一个新的符号
在C语言中类似一个输出赋值符
z = x << ( 1 > 5 );
z = x << 1;
相当于 x =1; z = x;

补充一下关于符号的相关信息:
用>>于cin对象,表示从标准输入,输入数据到变量中
<<用于cout对象,表示将变量数据,输出到标准输出中


#考试酷#A13_Precedence and Order of Evaluation-2
c语言garbage value意思是垃圾代码。【//, 就是它】
  warning:the left operand of == is a garbage value
当出现这个警告(内存泄露)的时候,是由于变量在不满足条件的时候,没有给变量赋值,会造成这样的警告。
  解决办法是:可以将变量初始化一个值,或者保证在进行i判断的时候一定有值。


#考试酷#A13_Precedence and Order of Evaluation-2
等等 这个我忘记了 往前面翻一下


#考试酷#A13_Precedence and Order of Evaluation-2
因为是逻辑符号优先
所以就相当于z = 1 = 1
因为中间的1不是变量,所以赋值无效
所以就是compile time error


#考试酷#A13_Precedence and Order of Evaluation-2
!x = 1
1 && 2 =1
所以填true


#考试酷#A13_Precedence and Order of Evaluation-2
我也不太见过这个~x & y
我猜大概~x也是相当于!x的意思
或者是啥我也不太懂