设有说明"int x=1,z=1,y=1,k;",执行语句"k=x--||++y&&++z"后,变量y值为多少? 若声明int x=1,z=1,y=1,k;则计算表达式k=x...

\u8bbe\u6709\u8bf4\u660e"int x=1\uff0cz=1,y=1,k;"\uff0c\u6267\u884c\u8bed\u53e5"k=x--|| y&& z"\u540e\uff0c\u53d8\u91cfy\u503c\u4e3a\u591a\u5c11\uff1f

y\u7684\u503c\u6ca1\u6709\u6539\u53d8\uff0c\u5e94\u8be5\u662f\u6c42k\u7684\u503c\u5427\uff0cx--\u7684\u503c\u4e3a0\uff0cy&&z\u7684\u503c\u4e3a1\uff0c0||1==1\uff0c\u6240\u4ee5k\u7684\u503c\u4e3a1\u3002

\u53d8\u91cfk,x,y,z\u7684\u503c\u5206\u522b\u4e3a 1\uff0c2\uff0c1\uff0c1 \u6b63\u786e\u3002
\u539f\u56e0\uff1a
k=x++||++y&&++z; \u662f\u8d4b\u7ed9 k \u903b\u8f91\u503c\u3002 \u903b\u8f91 \u5f0f \u662f \u6216\u8fd0\u7b97 \uff0c \u6709\u89c4\u5b9a\uff0c\u82e5 \u6216\u8fd0\u7b97 \u4e2d \u7b2c\u4e00\u9879\u4e3a\u771f\uff0c\u5219\u7ed3\u679c\u4e3a\u771f\uff0c\u5c31\u4e0d\u505a \u7b2c\u4e8c\u9879\u8fd0\u7b97\u3002 \u6240\u4ee5 \u5f0f\u5b50\u7b80\u5316\u4e3a\uff1a k=x=\u771f=1; x=x+1=2;
y,z \u672a\u53c2\u52a0\u5b9e\u9645\u8fd0\u7b97\uff0c\u4fdd\u7559\u521d\u59cb\u503c 1\uff0c1\u3002

答案是正确的
逻辑运算符的结合方向是从左到右
当执行k=x--时逻辑||的左值为1,不管||后面的是0是1,此逻辑表达式的值都为1
都不执行||右边的表达式了,所以y还是1

首先检测x--,先取值后自减,取值为1,所以整个x--||++y&&++z肯定为真,后面就不会继续执行了,y不变

扩展阅读:int a[3][4] ... &quot 12123&quot ... &quot ... &quot是什么意思 ... 怎么打出来 ... 自动翻译器在线翻译 ... mov ah2 int 21h ... 报废 ... quotient ...

本站交流只代表网友个人观点,与本站立场无关
欢迎反馈与建议,请联系电邮
2024© 车视网