设有如下定义:struct s1{int x;int y;};struct s2{int a;float b;struct s1 p;}ss;以下引用正确的是( )。
A: (ss).x
B: (ss)->p.a
C: ss.p->a
D: ss.p.x
A: (ss).x
B: (ss)->p.a
C: ss.p->a
D: ss.p.x
举一反三
- 以下结构体类型说明及结构体变量a,b的定义中,正确的是:( )。 A: struct ss { char flag; float x; } ; ss a,b; B: struct ss{ char flag;float x;}; struct ss a,b; C: struct { char flag; float x; }ss; ss a,b; D: struct { char flag;float x;}ss;struct ss a,b;
- 下列结构体类型说明和变量定义中,正确的是 A: struct SS{char flag;float x;} struct SS a,b; B: struct {char flag;float;}SS; SS a,b; C: struct ss{char flag;float x;}; struct ss a,b; D: typedef{char flag;float x;}SS; SS a,b;
- 设有如下定义:struct stru{int x;int y;};struct st{int x;float y;struct stru *p;} st1,*p1=&st;以下引用正确的是____。 A: (*p1).p.x B: (*p1)->;p.a p1->;p->;x p1.p->;a C: p1->;p->;x D: p1.p->;a
- 有如下定义:struct{int x;int y;}s[2]={{1,2},{3,4}}, *p=s;则:表达式 ++p->;x的结果是( ① ) 。表达式(++p)->;x的结果是( ② ) 。
- 有如下定义: struct { int x; char *y; }sa[2]={{1,"ab"},{2,"cd"}},*p=sa; 则:语句:printf("%s",(++p)->y); 的输出是 。