读书人

简单的指针有关问题

发布时间: 2012-02-14 19:19:19 作者: rapoo

简单的指针问题
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;
}

读书人网 >C++

热点推荐