#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材料有何优点?
- 柯尔鸭是什么品种 与其它鸭子有何区别
- 共进晚餐是什么意思 共进晚餐有何意思
- 关于曾经拥有的句子
- 什么是经络学?包括哪些内容?在中医养生学有何作用?
