问题遇到的现象
已知
struct node{
int len;
char *pk;
}x={2,"right"},*p=&x;
问不符合C语言语法
A.p->pk
B *p.pk
C .p->pk
Dx.pk
一眼看ac有点像可能在ac中选 ,但是d选项更像 答案为d;
但是放在编译器中B选项报错 pk不是结构体或者联合体;
望解答
A,B,C,D选项信息你能用代码块贴出来吗?你这么贴的话,看不清楚哪些有 * 号,哪些没有。应该是C选项开头有个 * ,D选项开头有个 *
总体看的话,确实B是错的
A: p是指针,用->访问成员没问题
B: .优先级高于 * ,不能用.访问成员的
C: ->优先级高于 * ,相当于取得p->pk指针的第一个元素值
D: .优先级高于 * ,相当于取得x.pk指针的第一个元素值
这个* 是取地址中的数据的操作符,即:*后面必须是指针变量才是合法的!
很明显,上面的x不是指针,所以,D是错误的