问题
单项选择题
设有如下定义:
struct sk
int a;
float b;
data;
int *p;
若要使p指向data中的a域,正确的赋值语句是
A.p=&a;
B.p=data.a;
C.p=&data.a;
D.*p=data.a;
答案
参考答案:C
解析:data是一结构体变量,a是它的成员,因此引用a域的正确方法是: data.a,取它的地址赋值给指针变量P的语句应该是:p=&data.a。选项A,将a的地址直接赋给了p,而忽略了a为结构体内部的一个成员,而不是一单独的变量;选项B在p=da- ta.a表达式中右边为一个结构体变量的成员不是地址,而左边为一指针应该将一地址赋给它;选项D表达式*p=data.a是将结构体变量中的成员a的值赋给指针p所指向的变量值,而不是使指针p指向data中的a域。