优秀的编程知识分享平台

网站首页 > 技术文章 正文

相关函数介绍(1)(相关函数表达式)

nanyue 2024-07-18 04:08:46 技术文章 8 ℃

C语言中的#include<stdlib.h>

是C语言中的一个头文件,stdlib 头文件里包含了C语言的一些函数,该文件包含了的C语言标准库函数的定义。

1、意思是标准输入输出头文件。

2、用到标准输入输出函数时,就要调用这个头文件。

3、stdlib.h中,包含了C语言的一些常用且方便的库函数。

4、如动态内存相关的malloc, realloc,zalloc,calloc,free等。

02利用递归函数调用方式,将所输入的5个字符,以相反顺序打印出来。

#include<stdio.h>

int main()

{

void plain(int n);

int i=5;

plain(i);

printf("\n");

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() 输入1
2. getchar()输入2(上一个getchar()及得到的3被压栈)
3. getchar()……3
4. getchar()……4
5. getchar()……5
5. putchar() 输出5
4. putchar() 输出4
3. putchar() ………3
2. putchar()……2
1. putchar()……1
按照1234554321的次序,标号相同的语句是同一个函数的语句,正所谓first in last out 首先被执行getchar的最后被执行putchar

Tags:

最近发表
标签列表