c语言->和 .

选择题
对于以下变量定义,以下表达式正确的是:()
struct node{
char s[10];
int k;
}p[4];
A.p->k=2 B.p[0].s="abc" C.p[0]->k=2 D.p->s='a'

我这样理解:
p指代的是地址 即p[0]的地址
所以p->k=2 等价于p[0].k=2;
->是指针特用的

答案我知道,我想知道的是 结构中-> 和.的区别.

你的理解是对的,答案选A。
B错,只有在声明字符数组的时候才能将一个字符串赋给数组。如:char a[5] = "abc";而
char a[5]; a="abc";这种写法是错的。
C错,p[0]不是指针,不能用->。
D错,不能将一个 const char 类型的字符 'a' 赋给 数组 s。
温馨提示:答案为网友推荐,仅供参考
第1个回答  2011-02-17
->运算是间接寻址,比.运算的寻址速度更快。
而且你用多指针的话会发现指针用->这种调用方式更简洁,几乎没人会使用p[0].k或*p.k这样的调用方式。
第2个回答  2011-02-17
自己到编译器上去试一下撒