3 回答

TA貢獻1906條經(jīng)驗 獲得超10個贊
對串“123456”來說, 從str到str+5,因為是從0開始算的,沒有到str+6;
因為每次遞歸的時候都有把s〔k〕賦值啊,當i==0時結(jié)束,此時s=str-1;然后回朔,則剛好s=str時,*s='0'+1;
然后s++;
則*s='0'+2;
以此類推。就可以得到串s="123456" 了;因為你str有7個空間,且
str[6]='\0';所以可以%s 輸出 了。

TA貢獻1111條經(jīng)驗 獲得超0個贊
itoa()函數(shù)將整數(shù)轉(zhuǎn)換為對應的字符串,保存到指定的字符數(shù)組中,
itoa(n,str+5)
將n轉(zhuǎn)換為字符串,保存到str+5字符數(shù)組中。

TA貢獻1921條經(jīng)驗 獲得超9個贊
1 *s = '0'+i%10;//*s = '1'+i%10;
是因為 '0'+3=>'3','0'+4=>'4',('0'的asc碼是48)
2 itoa(n,str+5);//itoa(n,str+6);
是因為你輸入的123456是六位數(shù),數(shù)組char str[7]=""是七位
從str[0]到str[6],但str[6]得存放
字符串'123456'后的'\0'結(jié)束字符,所以有效的是str[0]到str[5],
所以得是itoa(n,str+5)而不是itoa(n,str+6);
- 3 回答
- 0 關注
- 154 瀏覽
添加回答
舉報