指针的指向问题,什么时候是地址,什么时候是值
题目是已知两个依元素值递增有序排列的线性表A和B,且同一表中的元素值各不相同。构造一个线性表C.其元素为A和B中元素的交集,且表C的元素也依次递增有序,设计对表A,B,C都是顺序表的情况的算法。我的如下,但指针有问题,就是*indexa表示的应该是他的值吧,但判断空时有问题,导致if(*indexa==*indexb && *indexa!=NULL){这个条件执行了多次,求大神解答
#include <stdio.h>
#include <stdlib.h>
int* shas(int *a,int *b){
int *indexa=a;
int *indexb=b;
int c[100];
int indexc=0;
while(true){
if(*indexa==NULL||*indexb==NULL){
break;
}
if(*indexa==*indexb && *indexa!=NULL){
c[indexc]=*indexa;
indexc++;
indexa++;
indexb++;
}
if(*indexa>*indexb){
indexb++;
}
if(*indexa<*indexb){
indexa++;
}
}
return c;
}
int main(){
int a[]={1,2,3,4,5,6,7};
int b[]={2,3,5,7,8,9,11};
int *c= shas(a,b);
while(*c!=NULL){
printf("%d==asad\n",*c);
c++;
}
system("pause");
return 1;
}