什么是函数呢?

首先函数是在完成特定任务的程序代码中,拥有自己独立的单元。

举个例子

“你可以拿本书吗?”

”你可以拿本语文书吗?“

“你可以拿苹果吗?”。。。。。

如果要是放到程序里面估计要重复很多一样的动作,所以函数的第一个优点就是:可以省去重复代码的编写

将“你可以拿”作为它的函数,接下来拿的东西比如:书、语文书、苹果。。。这些都是可以修改的完善的,

没有必要在主函数中来回乱改,一不小心改错了地方也是很麻烦的。所以函数的第二个优点:在某种功能在程序中只修改和完善某个单元

接下来看一下代码

#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语言 复习函数的更多相关文章

  1. C语言复习---零散补充

    一:double和float使用scanf获取数据 printf输出float和double都可以用%f,double还可以用%lf. 2 scanf输入float用%f,double输入用%lf,不 ...

  2. C语言复习20170728

    C语言复习20170728 键盘输入和屏幕输出 字符常量:把字符放在一对单引号内,适用于多数可打印字符. 转义字符: 以反斜线()开头,也是放在一对单引号内,适用于控制字符. .\t,是水平制表符,相 ...

  3. C语言复习-字符串与指针

    C语言复习-字符串与指针 例一: [字符串处理 去除C代码中的注释] C/C++代码中有两种注释,/* */和//.编译器编译预处理时会先移除注释.就是把/*和*/之间的部分去掉,把//以及之后的部分 ...

  4. C语言pow函数编写

    C语言pow函数编写 #include<stdio.h> double chaoba(double f,double q); //声明自定义函数 void main(void) { dou ...

  5. C语言-自定义函数

    C语言自定义函数 --1-- 自定义函数定义 1.1 无参无返回值函数 1.2 无参有返回值函数 1.3 有参无返回值函数 1.4 有参有返回值函数 --2-- 函数的参数 2.1 形式参数介绍和使用 ...

  6. C语言printf()函数:格式化输出函数

    C语言printf()函数:格式化输出函数 头文件:#include <stdio.h> printf()函数是最常用的格式化输出函数,其原型为:     int printf( char ...

  7. C语言的函数

    "函数"在英文的翻译是"function",无论在自然科学还是计算机科学都是这个词,而"function"的本意是"功能" ...

  8. c语言main函数返回值、参数详解(返回值是必须的,0表示正常退出)

    C语言Main函数返回值 main函数的返回值,用于说明程序的退出状态.如果返回0,则代表程序正常退出:返回其它数字的含义则由系统决定.通常,返回非零代表程序异常退出. 很多人甚至市面上的一些书籍,都 ...

  9. Go语言示例-函数返回多个值

    Go语言中函数可以返回多个值,这和其它编程语言有很大的不同.对于有其它语言编程经验的人来说,最大的障碍不是学习这个特性,而是很难想到去使用这个特性. 简单如交换两个数值的例子: package mai ...

随机推荐

  1. CF600E Lomsat gelral (启发式合并)

    You are given a rooted tree with root in vertex 1. Each vertex is coloured in some colour. Let's cal ...

  2. ACM-ICPC 2018 焦作赛区网络预赛 B题 Mathematical Curse

    A prince of the Science Continent was imprisoned in a castle because of his contempt for mathematics ...

  3. 打样ov9650,无一幸免,失败告终,之调试记录

    新打样的ov9650,焊接了4块,其中只有2块有反应,另外两块无反应,于是使用热风台助焊,调试 助焊无效,怀疑焊盘有问题,于是拆掉 有问题的图像不正常 已看图像,只知道缺位,于是使用示波器检查,发现d ...

  4. FPGA_VIP_V101 视频开发板 深入调试小结

    FPGA_VIP_V101 推出已经有半年有余,各项功能例程已移植完毕,主要参考crazybingo例程进行移植和结合开发板设计了几个实例例程 主要包含: 硬件配置: FPGA:EP4CE6E22C8 ...

  5. 每周一练 之 数据结构与算法(LinkedList)

    这是第三周的练习题,原本应该先发第二周的,因为周末的时候,我的母亲大人来看望她的宝贝儿子,哈哈,我得带她看看厦门这座美丽的城市呀. 这两天我抓紧整理下第二周的题目和答案,下面我把之前的也列出来: 1. ...

  6. Web基础了解版03-jQuery

    jQuery jQuery,顾名思义,也就是JavaScript和查询(Query)极大地简化了JavaScript开发人员遍历HTML文档.操作DOM.处理事件.执行动画和开发Ajax. jQuer ...

  7. nginx代理grafana

    希望通过Nginx为服务器上的grafana进行代理,实现通过在当前域名后加/grafana在公网进行访问,开始按照百度的方法弄了几个小时都不行,后面仔细看了官方的文档才弄好,Mark一下. Ngin ...

  8. CCF-CSP题解 201403-4 无线网络

    新建不超过\(k\)个无线路由器,求使路由器1.2连通最少的中间路由器. 首先常规建图,将相距不超过\(r\)的路由器(包括新建的)相连. 想到了分层\(dijkstra\).类似的,作\(bfs\) ...

  9. 《Java知识应用》Java Excel读取(xls、xlsx)和写入

    第一步: 链接: https://pan.baidu.com/s/1emJpl7cpvKZyRMzWccAhJA 提取码: p3a7 复制这段内容后打开百度网盘手机App,操作更方便哦 下载jar包: ...

  10. SpringBoot微服务电商项目开发实战 --- Redis缓存雪崩、缓存穿透、缓存击穿防范

    最近已经推出了好几篇SpringBoot+Dubbo+Redis+Kafka实现电商的文章,今天再次回到分布式微服务项目中来,在开始写今天的系列五文章之前,我先回顾下前面的内容. 系列(一):主要说了 ...