语句)*pc++=*pa++,请教什么意思

时间:2021-07-18 19:59:42
*pc++=*pa++;  不明白这个语句是什么意思,请大侠们指教。下附源程序,不明白的语句在变色的一行。



void MergeList_Sq( SqList La, SqList Lb ,SqList &Lc )
{
//已知顺序线性表La和Lb的元素按值非递减排列
//归并La和Lb得到新的顺序线性表Lc,Lc的元素也按值非递减排列
pa=La.elem;
pb=Lb.elem;
Lc.listsize=Lc.length=( 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(*pa<=*pb) *pc++=*pa++;
else *pc++=*pb++;
}
while(pa<=pa_last)*pc++=*pa++;
while(pb<=pb_last)*pc++=*pb++;
}//MergeList_Sq

7 个解决方案

#1


赋值语句

#2


循环中指针变量的赋值
等价于
*pc=*pa;
pc++;
pa++;

#3


赋值,然后指针移动

#4


谢谢 libralibra的解答,不过,为了试验,我自己写了个程序,但仍出错,出错提示为:“Lvalue required in function main ”
出错位置标在下面程序中。
请各位大侠多多指点。

void main()
{
int pc,pa,i;
pc=pa=i=1;
while( pc<=20 )
{
/*  pc=pa;pc++;pa++;  这句能编译通过*/    /*  pc++=pa++;        这句提示出错*/ printf("pc= ",pc,"  pa= ",pa,"No. :" ,i++,"\n");
}
}

#5


引用楼主 cometzg 的回复:
*pc++=*pa++;  不明白这个语句是什么意思,请大侠们指教。下附源程序,不明白的语句在变色的一行。



void MergeList_Sq( SqList La, SqList Lb ,SqList &amp;Lc )
{
//已知顺序线性表La和Lb的元素按值非递减排列
//归并La和Lb得到新的顺序线性表Lc,Lc的元素也按值非递减排列
pa=La.elem;
pb……


把pa指向的数据的值赋给pc指向的数据

应该是这样

#6


一对一的拷贝

#7


pa_last=La.elem+La.length-1;
pb_last=Lb.elem+Lb.length-1;
是什么意思

#1


赋值语句

#2


循环中指针变量的赋值
等价于
*pc=*pa;
pc++;
pa++;

#3


赋值,然后指针移动

#4


谢谢 libralibra的解答,不过,为了试验,我自己写了个程序,但仍出错,出错提示为:“Lvalue required in function main ”
出错位置标在下面程序中。
请各位大侠多多指点。

void main()
{
int pc,pa,i;
pc=pa=i=1;
while( pc<=20 )
{
/*  pc=pa;pc++;pa++;  这句能编译通过*/    /*  pc++=pa++;        这句提示出错*/ printf("pc= ",pc,"  pa= ",pa,"No. :" ,i++,"\n");
}
}

#5


引用楼主 cometzg 的回复:
*pc++=*pa++;  不明白这个语句是什么意思,请大侠们指教。下附源程序,不明白的语句在变色的一行。



void MergeList_Sq( SqList La, SqList Lb ,SqList &amp;Lc )
{
//已知顺序线性表La和Lb的元素按值非递减排列
//归并La和Lb得到新的顺序线性表Lc,Lc的元素也按值非递减排列
pa=La.elem;
pb……


把pa指向的数据的值赋给pc指向的数据

应该是这样

#6


一对一的拷贝

#7


pa_last=La.elem+La.length-1;
pb_last=Lb.elem+Lb.length-1;
是什么意思