. 成员选择(对象),形式:对象.成员名-> 成员选择(指针),形式:对象指针->成员名在这里,p是数组名,也是一个指针,所以,p->k=2;是正确的。而p[0]是一个结构体(是一个对象),只能使用p[0].k=2;而不能使用p[0]->k=2;
其实看一下,B,D的赋值方法是错误的,或者说C语言没有规定这样的赋值方式。B项应该这样赋值:strcpy(p[0].s,"abc")D项应该这样赋值:p->s[0]='a'