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

一个c程序有关问题

2012-04-18 
一个c程序问题voidmain(){intnum0inticharsrc[] ABCD1234efgh intlensizeof(src)chararr[55]cha

一个c程序问题
void   main()
{
        int   num=0;
        int   i;
        char   src[]= "ABCD1234efgh ";
        int   len=sizeof(src);
        char   arr[55];
        char   *des=arr;
        for(i=0;i <len;i++)
                *des++=src[len-i-1];
        *des++= '\0 ';
   
        printf( "%s\n ",des-len);//注意这句话
        getch();
}

上面程序是个逆序程序,我的问题是printf( "%s\n ",des=des-len);//注意这句话
这条语句改为printf( "%s\n ",arr)就输出没有任何东西,arr不就是指向des首地址的吗????

[解决办法]
void main()
{
int num=0;
int i;
char src[]= "ABCD1234efgh ";
int len=sizeof(src);//len==13!!注意!!
char arr[55];
char *des=arr;
for(i=0;i <len;i++)
*des++=src[len-i-1];//arr[0]==*des==src[len-1]== '\0 ';注意这个,!!
*des++= '\0 ';//des==arr+len+1

printf( "%s\n ",des-len);//这样是从arr[1]开始输出,
//printf( "%s\n ",arr);//从arr[55]的第一个元素开始输出,但第一个元素是 '\0 ',
//因为字符串一遇到 '\0 '就结束,所以就输出没有任何东西
getch();
}

热点排行