C语言基本语法——函数
1、什么是函数
2、函数语法
3、函数声明
4、函数调用
5、函数的形参与实参
6、return与exit关键字
7、递归函数
1、什么是函数
• 函数就是一连串语句被组合在一起,并指定了一个名字
• 函数这个术语来自数学,但不完全等同于数学
–函数不一定有参数
–函数不一定要计算数值
• 函数是C语言的构建块
2、函数语法
• 函数在使用步骤分为三个步骤:声明、定义、调用。
• 语法格式
返回值类型 函数名(参数){
...(函数体)(返回值);
}
3、函数声明
• 正常来讲,函数在使用前一定要声明
• 由于编译器从上到下,所以下面的代码调用上面的函数,不 需要声明,但上面的代码调用下面的函数,就必须声明
• 声明的格式,去掉函数体部分,保留 返回值类型 函数名(参 数);(函数的原型)
• 如果返回值类型不是int的话,最好使用函数声明(函数原型)。
• void f();
函数声明,可以省略参数,省略参数代表可以接受任意参数,如 果不需要参数,使用void关键字。void f(void);
4、函数调用
• 需要写出函数名及其后的实际参数列表
• 实际参数用来给函数提供信息
• 实际参数不一定是变量,任何正确类型的表达式都可以
5、函数的形参与实参
• 函数的形参是在定义时使用的参数
int fa(int x) {
return x * x + 2 * x + 4;
}
• 函数的实参是调用此函数时需要传入的参数
int main() {
int result = fa(10);//x = 10;
return 0;
}
6、return与exit关键字
• 调用函数时,需要函数的执行结果,这时就需要返回值类 型标识结果的类型,函数体内部需要使用return关键字,标识具体的函数结果(返回值)。
• 如果函数执行后,不需要结果,就定义函数的返回值类型 void(空),也就不需要return关键字。
• exit(0)是一个函数,用于退出整个程序 需要包含一个 stdlib.h
• return 可以做为返回值的关键字,终止当前函数的继续执 行。
7、递归函数
• 递归算法
–递归的过程,一般通过函数或子函数实现
–递归方法:在函数或子函数内部,直接或间接调用自己的算法。
• 递归工作原理
递归有可能造成死循环或算法的复杂化。(运行次数变多)。因 此使用递归时,必须注意:
-必须有退出条件
-必须保存递归后,算法简化
• 递归格式
int f1(int n) {
printf("f1(int n) %d\n",n);if (n==1) {
return 1;
}
return n*f1(n-1);
}
C语言基本语法——函数的更多相关文章
- C语言基础语法之指向函数的指针
指针是C语言的精髓,对于初学者来讲,指针是C语言语法学习中比较难的知识点,而这里面指向函数的指针更是不太容易理解. 下面给大家讲下怎样学习理解C语言中指向函数的指针及编程方法和使用例子. 注意:这是一 ...
- C语言 第八章 函数、指针与宏
一.函数 函数是一个包含完成一定功能的执行代码段.我们可以把函数看成一个"黑盒子", 你只要将数据送进去就能得到结果, 而函数内部究竟是如何工作的的, 外部程序是不知道的.外部程序 ...
- 黑马程序员——C语言基础语法 关键字 标识符 注释 数据及数据类型
Java培训.Android培训.iOS培训..Net培训.期待与您交流! (一下内容是对黑马苹果入学视频的个人知识点总结) (一)C语言简单介绍 (1)C语言程序是由函数组成的任何C语言程序都是由一 ...
- (转)PHP的语言结构和函数的区别
相信大家经常看到对比一些PHP应用中,说用isset() 替换 strlen(),isset比strlen执行速度快等. 例子: if ( isset($user) ) { //do some thi ...
- 函数指针玩得不熟,就不要自称为C语言高手(函数指针是解耦对象关系的最佳利器,还有signal)
记得刚开始工作时,一位高手告诉我说,longjmp和setjmp玩得不熟,就不要自称为C语言高手.当时我半信半疑,为了让自己向高手方向迈进,还是花了一点时间去学习longjmp和setjmp的用法.后 ...
- php入门 数据类型 运算符 语言结构语句 函数 类与面向对象
php PHP-enabled web pages are treated just like regular HTML pages and you can create and edit them ...
- 初识 go 语言:语法
目录 语法 for 循环 if 语句 switch 语句 defer 语句 defer 栈 结束 前言: go语言系列第二篇,主要讲述go语言的语法,如循环,if判断,swich语句,defer语句, ...
- go语言基本语法
一个例子总结go语言基本语法 demo.go package main import ( "fmt" ) //结构体 type PersonD struct ...
- Groovy语言学习--语法基础(1)
2018年11月末,从上家公司离职后进入现在的公司.进入项目以来,发现项目中有很多groovy脚本,以前没接触过groovy,抽时间系统地学一下,也方便后期项目的开发和维护. groovy和java的 ...
随机推荐
- 找到多个与名为“HOME”的控制器匹配的类型。如果为此请求(“{CONTROLLER}/{ACTION}/{ID}”)提供服务的路由在搜索匹配此请求的控制器时没有指定命名空间,则会发生此情况。如果是这样,请通过调用含有“NAMESPACES”参数的“MAPROUTE”方法的重载来注册此路由。
public static void RegisterRoutes(RouteCollection routes) { routes.IgnoreRoute("{resource}.axd/ ...
- 《黑白团团队》第八次团队作业:Alpha冲刺 第三天
项目 内容 作业课程地址 任课教师首页链接 作业要求 团队项目 填写团队名称 黑白团团队 填写具体目标 认真负责,完成项目 团队项目Github仓库地址链接. 第三天 日期:2019/6/17 成员 ...
- Ubuntu 15.10配置OpenCV
本系列文章由 @yhl_leo 出品,转载请注明出处. 文章链接: http://blog.csdn.net/yhl_leo/article/details/50635705 1 安装前准备 安装以下 ...
- VirtualBox安装kali linux过程及安装后无法全屏问题解决方法(2)
? 1 安装说完了,现在来看看怎么全屏吧,虚拟机无法全屏跟咸鱼有什么区别... 首先打开vbox,选择设备(Device)选项里面最下面安装增强工具那个选项(insert guest additi ...
- redis-ubuntu环境下安装
ubuntu环境下联网安装 进去系统后,首先修改root的密码 命令 sudo passwd 设置新的密码:XXX 切换为root操作 $ wget http://download.redis.io/ ...
- HDU 3709
真是跪了,一看范围就不会往枚举的方向想,没想到真用枚举加剪枝了...->——-> 解释一下代码中的上限: 例如4567,当枚举最高位时,很明显不能超过4,所以有上限,但当最高位为3以下时, ...
- java中继承关系学习小结
继承:把多个类中同样的内容提取出来.定义到一个类中,其它类仅仅须要继承该类.就能够使用该类公开的属性和公开的方法. 继承的优点:提高代码的复用性.提高代码的可维护性.让类与类之间产生关系,是多态存 ...
- [React] Reference a node using createRef() in React 16.3
In this lesson, we look at where we came from with refs in React. Starting with the deprecated strin ...
- lua 中string字符串的使用(string.len, string.char)
table.keys 返回指定表格中的全部键. 格式: keys = table.keys(表格对象) 使用方法演示样例: local t = {a = 1, b = 2, c = 3} local ...
- BroadcastReceiver类
java.lang.Object ↳ android.content.BroadcastReceiver 已知直接子类 AppWidgetProvider DeviceAdminReceiver ...