若有说明:int n=2,*p=&n,*q=p;,则以下非法的赋值语句是 A) n=(i=2,++i); B) j++; C) ++(i+1); D) x=j>0
问题描述:
若有说明:int n=2,*p=&n,*q=p;,则以下非法的赋值语句是 A) n=(i=2,++i); B) j++; C) ++(i+1); D) x=j>0
答
前面的说明与后面的语句好像没关系,是否抄错了.
后面的语句:
A) n=(i=2,++i); 正确,小括号里是逗号表达式,先算 i 赋值2,再算 i 增1,由于是前缀加,把3赋值给了 n.
B) j++; 自增语句,正确.
C) ++(i+1); 错.小括号 是表达式,不是变量,不能作自增运算.
D) x=j>i; 估计你没抄完整.假定是 j>i,赋值语句 正确.根据当时条件成立与否,把真或假(1或0) 赋值给x