#include<stdio.h>
#include<malloc.h>
voidmain()
{
inti;
char*c;
c=(char*)malloc(1*sizeof(char));
for(i=0;;i++)
{
*(c+i)=getchar();
if(*(c+i)=='\n')
{
*(c+i)='\0';
break;
}
else
c=(char*)realloc(c,(i+2)*sizeof(char));
}
for(--i;i>=0;i--)
{
putchar(*(c+i));
}
printf("\n");
free(c);
}
怎么樣?不錯,準確的應用內存,幾乎沒有浪費什么空間,這種方法也體現了一下指針的強大功能,寫這個程序雖然不敢說這個人已經掌握了指針的應用,但是起碼可以說他已經會用指針了 。代碼寫出來,看起來已經有點美感 。
但是也有一些人還是比較喜歡動腦筋的,經過一番思考,終于想出了第三種比較容易寫的方法,也許有寫初學者可能覺得有些難度,但是事實上這個東西一點都不難,如果稍微有點程序功底之后再看這段代碼,應該是相當輕松!
#include<stdio.h>
voidrun()
{
charc;
c=getchar();
if(c!='\n')
{
run();
}
else
{
return;
}
putchar(c);
}
voidmain()
{
run();
printf("\n");
}
寫出的代碼讓人眼前一亮,哇!原來遞歸功能簡單而又好用,那我們為什么不好好利用呢?但是遞歸也不一定就是最好的選擇,因為有時候雖然遞歸用起來很方便,但是效率卻不高,以后的討論中還會詳細說明 。
猜你喜歡
- 日本所處的半球位置,緯度位置和海陸位置有何特點
- 小滿養生有何誤區
- 什么是相對靜止?承認相對靜止來自有何意義
- 向量的計算法則
- 山藥蛋派、荷花淀派、茶子花派各有何主要特點?
- SMC材料有何優點?
- 柯爾鴨是什么品種 與其它鴨子有何區別
- 共進晚餐是什么意思 共進晚餐有何意思
- 關于曾經擁有的句子
- 什么是經絡學?包括哪些內容?在中醫養生學有何作用?
