c语言: 两个指向字符串的指针,*p1,*p2, 请问while(*p1++=*p2++)是什么意思?

如题所述

这个你可以这么理解!!
p1和p2都是指针变量,他们可能输数组(当然也不一定就是),我们先把p2地址里面的值放进p1所指向的地址中去!!然后判断p1地址里面的值是不是0,如果不是0,那么将p1和p2的指针都加1,指向后面的地址,并执行while中的语句。直到p2地址中的数为0.

如果不考率while循环内的语句的话!这句话的意思就是将p2指针指向单元中的一系列数(比如数组)前面所有不是0的数赋值到以p1指向地址开始的内存单元中(可以理解为另一个数组)。直到p2指向的内存单元中的数出现0为止!!!!
温馨提示:答案为网友推荐,仅供参考
第1个回答  2012-08-20
这不是一个判断式。。
如果是*p1++==*p2++的话,就是先比较p1,p2指针所指向的值,然后p1,p2指针再++。
第2个回答  2012-08-20
循环拷贝,一旦p1的值为false,退出循环。 这样做容易出问题 不推荐
第3个回答  2012-08-20
把p2字符串的非'\0'内容的字符逐个拷贝到P1的字符数组中。
第4个回答  2012-08-20
其实就是
*p1 = *p2;
while(*p1)
{
p1++;

p2++;

*p1 = *p2;

}