设有以下C语言说明语句。    struct { int x,y;} s[2]={{1,2),{3,4}),*p=s,*q=s;    则表达式++p->x和表达式(++q)->x的值分别为(34)。

admin2013-02-02  29

问题 设有以下C语言说明语句。    struct { int x,y;} s[2]={{1,2),{3,4}),*p=s,*q=s;    则表达式++p->x和表达式(++q)->x的值分别为(34)。

选项 A、1、1
B、1、3
C、2、3
D、3、3

答案C

解析 表达式++p->x中->(指向运算符)优先级高于++(自增运算符),所以先求出p->x中的值1。由于结构体数组元素(或结构体变量)中的成员是有存储单元的,可以像普通变量一样使用,因此++运算是针对s[0].x成员的,即该成员中的值自增后由1变为2。对于表达式(++q)->x,则是q先自增,q指向s[1],输出s[1].x成员中的值3。
转载请注明原文地址:https://kaotiyun.com/show/zHVZ777K
0

最新回复(0)