|
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.注释
*q=e; ++L->length; return OK; }/*ListInsert Before i */ |
|
/1.注释:P>=q此时是比较PQ指向的地址空间位置及存放数据的位置是否相等。位置当然是32位进制的了,.指针变量无非就是一个表示内存地址的长整数而已,指向同一个数组时,两个指针的大小就表示谁指向的元素靠前或靠后。如果不是指向同一个数组,比较大小就只能看出谁指向的内存空间地址较小,没什么意义。指针是一个变量,它存放的是内存地址
例如:int *p 其中,p的值就是*p指向的内存的地址,&p就是放在p这个内存地址中的数值,这个显然是int型的变量 顺序表的合并算法
|
|
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 =
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) {
} while(pa<=pa_last) *pc++=*pa++; while(pb<=pb_last) *pc++=*pb++; } |
指针(大小比较)等
最新推荐文章于 2025-04-16 21:35:41 发布
我是由下面的例子来理解的:
2392

被折叠的 条评论
为什么被折叠?



