搜索
写经验 领红包
 > 房产

相关函数的应用(函数相关是什么意思)

导语:相关函数介绍(1)

相关函数的应用(函数相关是什么意思?)

C语言中的include<stdio.h>

int main()

{

void plain(int n);

int i=5;

plain(i);

printf(&34;);

return 0;

}

void plain(int n)

{

char next;

if(n<=1)

{

next=getchar();

putchar(next);

}

else

{

next=getchar();

plain(n-1);

putchar(next);

}

}

函数调用顺序是这样(简化一下):

刚开始这样的

plain(5) ;

putchar(5) ;

因为上面plain(5) ; 中5 >1 又调用了plain(4) ; 展开了写就成了下面的形式,看一下print的顺序就应该知道了

plain(5)

plain(4)

plain(3)

plain(2)

plain(1)

putchar(1)

putchar(2)

putchar(3)

putchar(4)

putchar(5)

getchar() 函数

函数声明: int getchar(void)

函数功能: C 库函数int getchar(void)从标准输入 stdin 获取一个字符(一个无符号字符)。这等同于getc带有 stdin 作为参数。

返回值: 该函数以无符号 char 强制转换为 int 的形式返回读取的字符,如果到达文件末尾或发生读错误,则返回 EOF。

原理: 当程序调用getchar时,程序就等着用户按键。用户输入的字符被存放在键盘缓冲区中。直到用户按回车为止。当用户键入回车之后,getchar才开始从stdin流中每次读入一个字符。getchar函数的返回值是用户输入的字符的ASCII码,若文件结尾则返回-1(EOF),且将用户输入的字符回显到屏幕。如用户在按回车之前输入了不止一个字符,其他字符会保留在键盘缓存区中,等待后续getchar调用读取。也就是说,后续的getchar调用不会等待用户按键,而直接读取缓冲区中的字符,直到缓冲区中的字符读完后,才等待用户按键。

putchar() 函数

函数声明: int putchar(int char)

函数功能: 把参数 char 指定的字符(一个无符号字符)写入到标准输出 stdout 中。

说明: 该函数将指定的表达式的值所对应的字符输出到标准输出终端上。表达式可以是字符型或整型,它每次只能输出一个字符。

假定输入12345首先n=5;next=getchar()=1;palin(n-1=4);next=getchar()=4(注意关键的地方,这个next和上一个next是不一样的,上一个next被压栈保护;)……palin(1);next=getchar()=5;(压栈完成,下面进行出栈)putchar(next=5);5被pop出来;……弄清楚递归,一定要搞明白栈(first in last out)的结构,递归就是依赖栈运行的。在运行下一个递归函数前将上一个递归函数压栈,这个递归函数运行完成后,继续运行上一个递归函数;这个递归如果拆开来写如下:1. getchar() 输入12. getchar()输入2(上一个getchar()及得到的3被压栈)3. getchar()……34. getchar()……45. getchar()……55. putchar() 输出54. putchar() 输出43. putchar() ………32. putchar()……21. putchar()……1按照1234554321的次序,标号相同的语句是同一个函数的语句,正所谓first in last out 首先被执行getchar的最后被执行putchar

本文内容由小故整理编辑!