问题 单项选择题

设有以下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。

单项选择题
判断题