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

输出,该怎么解决

2012-03-08 
输出intmain(void){charsrc[]12345 chardest[]123 strcpy(dest,src)cout dest endlcout

输出
int   main(void)  
{  
     
char   src[]   =   "12345 ";
char   dest[]   =   "123 ";
       
        strcpy(dest,src);
cout < <dest < <endl;
cout < <src < <endl;
        return   0;

}
输出结果为什么是12345,5???

[解决办法]
int main(void)
{

char src[] = "12345 ";
char dest[] = "123 ";
printf( "0x%X\n ",src);
printf( "0x%X\n ",dest);
//注意 src的首地址和dest的首地址,dest的首地址在前且与src的首地址相差
4字节(栈内存分配机制)
strcpy(dest,src);
//按字节覆盖,dest从首地址开始被覆盖掉12345,然后src的首地址已经被覆盖成
'4 '了,后面是 '\0 '
cout < <dest < <endl;
cout < <src < <endl;
return 0;

}

热点排行