【c语言】帮我解释下这段程序 谢谢了

来源:百度知道 编辑:UC知道 时间:2024/06/30 08:49:15
#include<stdio.h>
#include<string.h>
int main()
{
char c=getchar();
if( c!= '\n')
{
main();
putchar(c);
}
return 0;
}

具体的实现过程想不太明白,希望高人指点一二。
比如我输入1234 那程序执行过程是怎样的? 到getchar(c) 的时候是读入1还是1234?

#include<stdio.h>
#include<string.h>

int main()
{
char c=getchar();、、从屏幕上获取字符
if( c!= '\n')//如果遇到回车符就结束
{
main();//递归调用函数main(),递归调用有个压栈的过程,返回之后出栈
//函数递归调用,就是它自己调用自己,调用过程类似一个栈,栈的特点是先进后出。

putchar(c);//输出字符(本来是按顺序输出,不过上面的的递归调用类似栈(先进后出),所以倒序输出了(不过也是按照栈的顺序输出了))
}

return 0;
}

getchar有一个int型的返回值.当程序调用getchar时.程序就等着用户按键.用户输入的字符被存放在键盘缓冲区中.直到用户按回车为止(回车字符也放在缓冲区中).当用户键入回车之后,getchar才开始从stdio流中每次读入一个字符.

比如我输入1234 那程序执行过程是怎样的? 到getchar(c) 的时候是读入1还是1234?

当你输入1234,当遇到回车时,getchar才开始从stdio流中读入1234

另外,“getchar”中不接受参数

只要你输入的字符不等于\n,都会输出你所输入的字符,\n就相当一个结束符。

这是一个用递归的方法将字符串置反的程序。
个人理解,应该和和栈有关,调用函数也是一个压栈,出栈时是按“先进后出”的原则输出的。

#include<stdio.h>//包含头文件
#include<string.h>//包含头文件

int main()
{
char c=getchar();//等待从键盘输入一个字符
if( c!= '\