在C语言中,以下非法的赋值语句是

在C语言中,以下非法的赋值语句是( )
A. j++; B. ++(i+1); C. x=j>0; D. k=i==j;
哪位大神可以详细说明以下,每个选项的错误和为什么正确,麻烦了

A.j++; 其实是j=j+1;
B. ++(i+1) ;其实是(i+1)=(i+1)+1; 显然是错的,因为i是变量,但是(i+1)并不是变量,不能赋值;
C. x=j>0; 因为">"的优先级比"="高,先算j>0,然后把结果赋值给x;
D.k=i==j; 同样的因为"=="优先级比"="高,先算出i==j,然后把结果赋值给k;
温馨提示:答案为网友推荐,仅供参考
第1个回答  2019-06-04
c选项是错的
a选项*(p+i)为p[i][0]的地址,*(p+i)+j为p[i][j]的地址,*(
*(p+i)+j)
也就是p[i][j]的值
b选项中p[i]相当于*(p+i),其他跟a一样了
c选项,如上面所说,*(p+i)+j为p[i][j]的地址,不能赋值
d选项,(*(p+i))为p[i][0]的地址,(*(p+i))[j]就是p[i][j]的值
相似回答