设有如下的说明和定义 struct { int a; char *s; } x, *p = &x; x.a = 4; x.s = "hello"; 则以下叙述中正确的是( )。

admin2015-07-28  27

问题 设有如下的说明和定义
struct {
int a;
char *s;
} x, *p = &x;
x.a = 4;
x.s = "hello";
则以下叙述中正确的是( )。

选项 A、语句 ++p->a; 的效果是使成员a增1
B、语句 ++p->a; 的效果是使p增1
C、(p++)->a与p++->a都是合语法的表达式,但二者不等价
D、语句 *p->s++; 等价于 (*p)->s++;

答案A

解析 语句"*p = &x; "将结构体指针p指向了结构体变量x的地址,所以*p与x等价,p->a与x.a等价,++p->a表示将a自增1,(p++)->a与p++->a等价,值均为4,*p->s++与*x.s++等价,语句"(*p)->s++"不合法,所以答案选A。
转载请注明原文地址:https://jikaoti.com/ti/VMn0FFFM
0

最新回复(0)