最簡單的反序輸出,就是把數(shù)組反序輸出。只需要從最大下標開始,向0下標循環(huán)輸出就可以了。
成都創(chuàng)新互聯(lián)公司基于成都重慶香港及美國等地區(qū)分布式IDC機房數(shù)據(jù)中心構建的電信大帶寬,聯(lián)通大帶寬,移動大帶寬,多線BGP大帶寬租用,是為眾多客戶提供專業(yè)服務器托管報價,主機托管價格性價比高,為金融證券行業(yè)成都服務器托管,ai人工智能服務器托管提供bgp線路100M獨享,G口帶寬及機柜租用的專業(yè)成都idc公司。
比如將字符串(字符數(shù)組)反序輸出的代碼如下:
void?reverse_output_str(char?*str)
{
int?len?=?strlen(str)?-1;//得到最大下標
while(len?=?0)printf("%c",?str[len--]);?//反序輸出直到str[0]
}
其它類的反序輸出,也都可以歸結為類似的情況。先把要輸出的正序輸出到一個數(shù)組,然后把這個數(shù)組反序輸出。
比如把一個10進制數(shù)反序輸出,即輸入1234,輸出4321,就可以采用類似的方式:
void?reverse_int_output(int?a)
{
char?buf[20];
sprintf(buf,?"%d",?a);//將a轉(zhuǎn)為字符串
reverse_output_str(buf);//調(diào)用剛才的函數(shù)反序輸出。
}
數(shù)組定義完,沒有初始化;系統(tǒng)會分配一段物理內(nèi)存給數(shù)組,如果不初始化,就會打印出亂碼,該段內(nèi)存地址有可能之前被使用過。
char?i[100]={0},o[100]=?{0};
結果對比:
未初始化數(shù)組
2.初始化數(shù)組
你是說*rev與rev[]吧,
在C語言里,當定義char
*rev的時候,rev是放在了常量區(qū),值不能修改,因此會出錯;
而定義char
rev[]的時候,rev數(shù)組是放在了棧區(qū),值可以修改,因此用數(shù)組不會報錯。