简单的指针问题
int main()
{
char *p1=“name”;
char *p2;
p2=(char*)malloc(20);
memset (p2, 0, 20);
while(*p2++ = *p1++);
printf(“%sn”,p2);
return 0;
}
为什么输出是空串?
单步了一下,发现
*p2++=*p1++
赋值语句没起作用
[解决办法]
while(*p2++ = *p1++);
===========
while(*p2++ = *p1++) //没有;号!
[解决办法]
int main()
{
char *p1=“name”;
char *p2;
p2=(char*)malloc(20);
memset (p2, 0, 20);
while(*p2++ = *p1++); ---------循环后,p2的位置!!!!
printf(“%sn”,p2);
return 0;
}
[解决办法]
你那个p2指针在不断的+,最后输出的时候指向了最后一个 '\0 '
int main()
{
char *p1= "name ";
char *p2;
p2=(char*)malloc(20);
memset (p2, 0, 20);
char* p3 = p2;
while(*p2++ = *p1++);
printf( "%s\n ",p3);
return 0;
}