您的位置:首页 > 其它

指针(大小比较)等

2014-01-14 01:36 162 查看
我是由下面的例子来理解的:


[align=center]顺序表的插入算法[/align]
status ListInsert(List *L,int i,ElemType e) {

struct STU *p,*q;

if (i<1||i>L->length+1) return ERROR;


q=&(L->elem[i-1]);

for(p=&L->elem[L->length-1];p>=q;--p)//1.注释

*(p+1)=*p;

*q=e;

++L->length;

return OK;

}/*ListInsert Before i */

/1.注释:P>=q此时是比较PQ指向的地址空间位置及存放数据的位置是否相等。位置当然是32位进制的了,.指针变量无非就是一个表示内存地址的长整数而已,指向同一个数组时,两个指针的大小就表示谁指向的元素靠前或靠后。如果不是指向同一个数组,比较大小就只能看出谁指向的内存空间地址较小,没什么意义。指针是一个变量,它存放的是内存地址

例如:int *p

其中,p的值就是*p指向的内存的地址,&p就是放在p这个内存地址中的数值,这个显然是int型的变量

[align=center]顺序表的合并算法[/align]
void MergeList(List *La,List *Lb,List *Lc) {

ElemType *pa,*pb,*pc,*pa_last,*pb_last;


pa=La->elem;pb=Lb->elem;

Lc->listsize = Lc->length = La->length + Lb->length;


pc = Lc->elem =

(ElemType *)malloc(Lc->listsize * sizeof(ElemType));


if(!Lc->elem) exit(OVERFLOW);


pa_last = La->elem + La->length - 1;


pb_last = Lb->elem + Lb->length - 1;


while(pa<=pa_last && pb<=pb_last) {


if(Less_EqualList(pa,pb)) *pc++=*pa++;


else *pc++=*pb++;

}

while(pa<=pa_last) *pc++=*pa++;

while(pb<=pb_last) *pc++=*pb++;

}

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: