设有以下C语言说明语句。 struct { int x y;} s[2]={{1 2) {3 4}) *p=s *q=s; 则表达式++p-

计算机 表达式,语句,语言 已帮助 人

设有以下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 语言的特点的是()。

答案解析

难度★★☆ 搜索
  • 正确答案:C
    解析:表达式++p->x中->(指向运算符)优先级高于++(自增运算符),所以先求出p->x中的值1。由于结构体数组元素(或结构体变量)中的成员是有存储单元的,可以像普通变量一样使用,因此++运算是针对s[0].x成员的,即该成员中的值自增后由1变为2。对于表达式(++q)->x,则是q先自增,q指向s[1],输出s[1].x成员中的值3。