C语言 复习函数
什么是函数呢?
首先函数是在完成特定任务的程序代码中,拥有自己独立的单元。
举个例子
“你可以拿本书吗?”
”你可以拿本语文书吗?“
“你可以拿苹果吗?”。。。。。
如果要是放到程序里面估计要重复很多一样的动作,所以函数的第一个优点就是:可以省去重复代码的编写
将“你可以拿”作为它的函数,接下来拿的东西比如:书、语文书、苹果。。。这些都是可以修改的完善的,
没有必要在主函数中来回乱改,一不小心改错了地方也是很麻烦的。所以函数的第二个优点:在某种功能在程序中只修改和完善某个单元
接下来看一下代码
#define NAME“GIATHINK”
#define classroom “101 ”
#define age 14
#derine num void dars(void);
int void main(){
dars();
pirntf("%s\n",NAME);
printf("%s\n",classroom);
printf("%d\n",age);
dars();
}
void dars(void){
int i;
for(i=;i<num;i++)
putchar('*');
putchar('\n');
}
运行结果:
这里引用了一个函数dars,通过函数dars ,其中dars在主函数main中一共出现了三次,第一次是声明函数dars, 第二次和三次分别对该函数进行了调用putchar(''*')。
在自定义函数中,如果void dars()没有任何参数那么就可以放入默认的void 类型,在很早之前c语言函数大多都是Int类型的,c99标准不在支持函数Interesting类型的默认设置,
好了,接下来就将咱们那个栗子做完
再来看一下函数里面老生杂谈的递归吧
#include<stdio.h>
void up_down(int);
int main(void){ } void up_down(int a){
printf("Level %d: location %p \n",n,&n);
if(n<)
up_down(n+);
printf("LEVEL %d: location %p\n",n,&n);
}
首先mian() 使用了参数调用函数up_down()于是up_down 中形式参数n为1,所以打印出来Leve1 ,接着由于n<5,所以 up_dwon()的参数+1 ,数值2条用了up_down 使得第二级被赋值2输出Leve2 接着依次调用3,4,5。
当n=5,n+1<5为假时,不满足If语句的条件,所以不在继续调用up_down ,接着输出LEVEL5,当5调用结束时,控制返回给该调用函数,也就是4,3,2,1就会有接下来的这些一直到返回到1并执行后续代码。
总的来说递归条用非常类似一个循环语句,是实际上,递归有时候可以被用来代替循环,反之也是可以!
C语言 复习函数的更多相关文章
- C语言复习---零散补充
一:double和float使用scanf获取数据 printf输出float和double都可以用%f,double还可以用%lf. 2 scanf输入float用%f,double输入用%lf,不 ...
- C语言复习20170728
C语言复习20170728 键盘输入和屏幕输出 字符常量:把字符放在一对单引号内,适用于多数可打印字符. 转义字符: 以反斜线()开头,也是放在一对单引号内,适用于控制字符. .\t,是水平制表符,相 ...
- C语言复习-字符串与指针
C语言复习-字符串与指针 例一: [字符串处理 去除C代码中的注释] C/C++代码中有两种注释,/* */和//.编译器编译预处理时会先移除注释.就是把/*和*/之间的部分去掉,把//以及之后的部分 ...
- C语言pow函数编写
C语言pow函数编写 #include<stdio.h> double chaoba(double f,double q); //声明自定义函数 void main(void) { dou ...
- C语言-自定义函数
C语言自定义函数 --1-- 自定义函数定义 1.1 无参无返回值函数 1.2 无参有返回值函数 1.3 有参无返回值函数 1.4 有参有返回值函数 --2-- 函数的参数 2.1 形式参数介绍和使用 ...
- C语言printf()函数:格式化输出函数
C语言printf()函数:格式化输出函数 头文件:#include <stdio.h> printf()函数是最常用的格式化输出函数,其原型为: int printf( char ...
- C语言的函数
"函数"在英文的翻译是"function",无论在自然科学还是计算机科学都是这个词,而"function"的本意是"功能" ...
- c语言main函数返回值、参数详解(返回值是必须的,0表示正常退出)
C语言Main函数返回值 main函数的返回值,用于说明程序的退出状态.如果返回0,则代表程序正常退出:返回其它数字的含义则由系统决定.通常,返回非零代表程序异常退出. 很多人甚至市面上的一些书籍,都 ...
- Go语言示例-函数返回多个值
Go语言中函数可以返回多个值,这和其它编程语言有很大的不同.对于有其它语言编程经验的人来说,最大的障碍不是学习这个特性,而是很难想到去使用这个特性. 简单如交换两个数值的例子: package mai ...
随机推荐
- 2018 ACM/ICPC 南京 I题 Magic Potion
题解:最大流板题:增加两个源点,一个汇点.第一个源点到第二个源点连边,权为K,然后第一个源点再连其他点(英雄点)边权各为1,然后英雄和怪物之间按照所给连边(边权为1). 每个怪物连终点,边权为1: 参 ...
- zabbix监控系统系列
来自网站:http://www.361way.com/zabbix-summarize/3335.html 一.zabbix的特点 zabbix是一个基于WEB界面的提供分布式系统监视以及网络监视功能 ...
- Ceph 提供iSCSI存储
Tgtd+Ceph部署 一.yum安装tgt [root@c720181 ~]# yum --enablerepo=epel -y install scsi-target-utils libxslt ...
- JAVA中SPI机制
之前研究dubbo的时候就很好奇,里面各种扩展机制,期间也看过很多关于SPI的机制,今日有缘再度看到有文章总结,故记录一下, 首先了解一下 JAVA中SPI简单的用法 可参考这篇文章,https:// ...
- Rabbitmq-单机安装
Rabbitmq介绍 官网地址:https://www.rabbitmq.com RabbitMQ是一款在全球范围内使用非常广泛的开源消息队列中间件.它轻量级.易部署.并支持多种协议.它基于Erl ...
- 《一头扎进》系列之Python+Selenium框架设计篇4- 价值好几K的框架,呵!这个框架有点意思啊
1.简介 前面文章,我们实现了框架的一部分功能,包括日志类和浏览器引擎类的封装,今天我们继续封装一个基类和介绍如何实现POM.关于基类,是这样定义的:把一些常见的页面操作的selenium封装到bas ...
- Django forms组件里的ChoiceField、ModelChoiceField和ModelMutipleChoiceField的区别
阅读简要 首先我们要明白Django forms组件里的ChoiceField.ModelChoiceField和ModelMutipleChoiceField是继承关系 ChoiceField 1. ...
- SpringBoot整合dubbo(yml格式配置)
yml文件 如果只作为服务的消费者不用暴露端口号,扫描的包名根据自己service改 dubbo: application: name: springboot-dubbo-demo #应用名 regi ...
- 《CSAPP》实验一:位操作
<CSAPP>号称程序员圣经,虽然中文译名为<深入理解计算机系统>,但其实没那么"深",只是覆盖面很广,一般用作计算机专业大一导论课的教科书.早就听闻书上配 ...
- sql手工注入1
手工注入常规思路 1.判断是否存在注入,注入是字符型还是数字型 2.猜解 SQL 查询语句中的字段数 3.确定显示的字段顺序 4.获取当前数据库 5.获取数据库中的表 6.获取表中的字段名 7.查询到 ...