结构体指针
有个结构体:
typedef struct
{
ElemType *elem;
int length;
int listsize;
}SqList;
ElemType* q;
q=&(L.elem[i-1]);
我不明白1,L.elem[i-1]);这是什么意思,这个指针变量为什么可以用下标访问,再者L.elem[i-1])的值是什么,是什么类型?
2,&(L.elem[i-1]),返回是什么?
那位路过帮忙解释一下q=&(L.elem[i-1]);
问题点数:20、回复次数:9Top
1 楼love830315(因为笨,所以要比别人更努力)回复于 2006-03-20 20:57:04 得分 0
1,L.elem[i-1]);这是什么意思,这个指针变量为什么可以用下标访问,再者L.elem[i-1])的值是什么,是什么类型?
L是一个SQLLIST类型的结构体,当用初始化这个结构体时可以将里面的ELEM放在一块相连的内存里,所以可以用下标进行访问.当然要自己控制好.
2,&(L.elem[i-1]),返回是什么?
访问就是一个elem结构地址.Top
2 楼firetoucher(风焱)回复于 2006-03-20 20:59:04 得分 0
C规定a[b]就等于a+b,所以elem[i-1]就等于elem+i-1,注意elem+1不是指下一个字节,而是指下一个
ElemType。
q=&(L.elem[i-1]);
返回elem指向的ElemType数组中的第i个的地址,赋值给q。
FT
--
Anything one man can imagine, other men can make real.Top
3 楼jixingzhong(瞌睡虫·星辰)回复于 2006-03-20 21:02:21 得分 20
L 是哪里来的啊 ??
根据程序,
猜测 ...
L 应该是 SqList 类型的 ..
L.elem[i-1] 就是访问 L 这个 SqList 类型结构体中的 elem 成员 ...
由于这个是一个指针,
对于指针,
也可以看成数组的,
于是可以有 L.elem[i-1] 这样的访问方式 ...
2, &(L.elem[i-1]) 这个就是返回 L.elem[i-1] 的地址 ...Top
4 楼delectation(飞)回复于 2006-03-20 21:44:54 得分 0
l是这样定义的:
SqList l;
我在初始化时,是这样做的
L.elem=(ElemType *) malloc(10*sizeof(int));
L.length=0;
L.listsize=10;
那l.elem是不是就像一个数组,那位再帮忙解释一下呢?越详细越好!Top
5 楼delectation(飞)回复于 2006-03-21 09:34:48 得分 0
达人帮忙呀!Top
6 楼delectation(飞)回复于 2006-03-21 11:00:10 得分 0
?Top
7 楼lzp229(只想飞)(卡卡)回复于 2006-03-21 11:02:37 得分 0
楼上都解释了,还帮忙什么啊。。
jixingzhong(瞌睡虫:选择了远方,只顾风雨兼程!) 解释的很清楚了。Top
8 楼delectation(飞)回复于 2006-03-21 13:15:43 得分 0
就是怎么读其中的数据Top
9 楼barbara2008(亦农)回复于 2006-03-21 13:32:27 得分 0
这个伪C代码,不是C语言,你只需要了解其过程Top




