首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C++ >

简单的指针有关问题

2012-02-14 
简单的指针问题intmain(){char*p1“name”char*p2p2(char*)malloc(20)memset(p2,0,20)while(*p2++*p1

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

热点排行