问题
单项选择题
设有以下定义:
struck 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
解析: p定义为指针变量。选项A中对结构体分量a的引用错误,应为data.a。选项B中data.a是取分量的值,它是一个整型数据,而p的值应为地址,所以不能将data.a赋值给p。&为取地址符,取分量data.a的地址赋值给p,是正确的赋值语句。*是间接访问运算符,选项D中的浯句是将分量data.a的值赋值给p所指存储单元,*p相当于一个变量,而不能实现使p指向data中的a域。