(1):
/和%优先级相同,但是结合顺序是从左往右
a=d/100%9
等价于:
a=(d/100)%9
因为d是int 所以
d/100=2,
2%9=2
a=2;
(2):
(0,1)是逗号表达式,结果是1
(-1)&&1结果是1
b=(-1)&&(0,1)=1
对于一个逻辑表达式,其值只要不是0就被设置为1,
(-1)不是0,所以就认为是1,
对于一个逗号表达式,它的值取最后一个表达式的值,即
x = (0,1,2,3);
则x的值为3,所以这里(0, 1)的值为1,
所以b = (-1)&&(0, 1)等价于
b = 1 && 1
所以b的值为1。
&&是与运算符,如果两边都是非0运算结果才是1这应该知道吧。-1就是一个非零常量,(0,1)这个考得主要是“,”运算符,不管括号内有多少个数都取最后一个值作为&&运算右边的量,所以两边都是非0,运算结果为1.基本就是这样,有问题可以再提问。
(0,1)是逗号表达式,这个表达式的值就应该是最右边这项的值1
b=(-1)&&(0,1)
就相当于b=(-1)&& 1;由于-1和1都是非0值&&运算之后肯定为真,为真则值为1所以b=1;
都好表达式 表达式1,表达式1,其求解过程先求表达式1,后求表达式2,整个表达式值是表达式2的值,所以(0,1)的值是1,(-1)加括号是为了调整结合顺序。