c语言中(a=x++)&&(b=x)是表达式吗下面这道题选什么 1. 定义int x=0,a,b;在下列选项中使a 的值为0,b 的值为1 的表达式是______ A)a=x++,b=a++ B)a=x++,b=x++ C)(a=x++)&&(b=x) D) (b=x+1)||(a=x) 为什么,怎么排除其他三个?
问题描述:
c语言中(a=x++)&&(b=x)是表达式吗
下面这道题选什么 1. 定义int x=0,a,b;在下列选项中使a 的值为0,b 的值为1 的表达式是______ A)a=x++,b=a++ B)a=x++,b=x++ C)(a=x++)&&(b=x) D) (b=x+1)||(a=x) 为什么,怎么排除其他三个?
答
C 肯定错的因为如果&&前面a是0则因为短路操作后面将不执行b也就不可能是1 D 道理一样如果||前面b是1则因为逻辑操作的短路原因a不会被执行 A 假设++操作的执行时机(取决于编译器定义的临界点,这方面C标准没有规定,看...