C语言讲义——函数
为实现特定目的而编写的一段可被调用的代码
简单地讲:函数就是一组语句,取了个名字
别名:子例程(routine)/方法(Method,一般面向对象的语言使用这个叫法)
函数的组成部分
以主函数为例:
#include <stdio.h>
#include <stdlib.h>
int main(int argc, char *argv[]) {
return 0;
}
| 返回类型 | int |
|---|---|
| 函数名 | main |
| 参数 | (int argc, char *argv[]) |
| 函数体 | { return 0; } |
函数三类
函数分三种:main函数、系统函数、自定义函数。
int main(int argc, char *argv[]) {// main:主函数
int ret = printf("震惊!\n");// printf:系统函数
printf("打印字符数:%d",ret);// printf:系统函数
return 0;
}
#include <stdio.h>
// 自定义函数:先定义,再使用
int max( int num1, int num2 ) {
int nRet = (num1 > num2? num1:num2);
return nRet;
}
int main(int argc, char *argv[]){
int nMax = max( 2 , 3 );// max自定义函数
printf("%d", nMax);
}
自定义函数使用口诀:
- 先定义,再调用;
- 传参数,得结果。
函数的好处
- 复用性+(拒绝重复代码)
- 维护性+(便于修改,可以只改函数里的代码)
- 可读性+(便于理解,这需要给函数取个合适的名字,要求见名知意)
当同一段代码出现两次时,就该考虑把这段代码封装到一个函数中,以减少重复代码。
参数(parameter)
形参/形式参数(formal parameter /parameter)
定义函数时,函数名后面括号中带类型的变量——规定参数必须是什么类型。
实参/实际参数(actual parameter /argument)
调用函数时,实际传入的参数,必须和形参的类型匹配。
#include <stdio.h>
int max(int x, int y) {//函数定义:形式参数
int nRet = (num1 > num2? num1:num2);
return nRet;
}
int main(int argc, char** argv) {
int a = 100;
int y = 200;
int nMax = max(a, y);// 函数调用处:实际参数
printf("%d", nMax);
return 0;
}
形参和实参的名字可以不一样——

返回值
- 无返回值——方便
- 有返回值——严谨
函数可以没有返回值,这时参数类型为void
函数主体中可以加【return ;】(只返回而无值)
也可以不加(自然结束。)
void luck(int n) {
if (1 == n) {
printf("恭喜您,获得100元代金券,购物满3000可用");
return;// 直接返回
}
printf("很遗憾没中奖,再去消费1000元又能来抽奖了");
// 自然返回
}
返回值可以让调用方知道函数执行的结果有哪些问题,建议函数都加返回值,哪怕返回值没有用到。
int func(){…}
double func(){…}等
int max(int x, int y) {
return (x>y)?x:y;
}
C语言讲义——函数的更多相关文章
- C语言讲义——函数递归
函数直接或间接调用自身 每次调用必须获得一些进展,进一步靠近目标 达到目标就不再调用自身 阅读递归函数不要纠缠于执行过程,而是相信递归函数会顺利完成任务 例:阶乘 0! =1(0 的阶乘定为1) 1! ...
- 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 ...
- 【学习笔记】【C语言】函数
一. 什么是函数 任何一个C语言程序都是由一个或者多个程序段(小程序)构成的,每个程序段都有自己的功能,我们一般称这些程序段为“函数”.所以,你可以说C语言程序是由函数构成的. 比如你用C语言编写了一 ...
- 【转载】 c语言inline函数的使用
c语言inline函数的使用 转载自:http://blog.chinaunix.net/uid-21843265-id-3056446.html 大学在教科书上学习过inline函数,定义为inli ...
随机推荐
- js根据ip地址获取城市地理位置
一.使用js根据ip获取地址位置 <script src="http://pv.sohu.com/cityjson?ie=utf-8"></script>& ...
- element ui实现form验证起始时间不能大于结束时间
<el-form-item label="开始时间" :label-width="formLabelWidth" prop="startTime ...
- 【新阁教育】S7.NET+Log4Net+SQLSugar+MySQL搭建Iot平台
1.搭建西门子S7仿真环境 新阁教育提醒您基于PLCSIM-Advanced搭建西门子S7仿真环境注意事项: 1.通过dotNet工控上位机公众号后台发送PLCSIM-Advanced获取软件 2.安 ...
- SpringBoot第四集:整合JdbcTemplate和JPA(2020最新最易懂)
SpringBoot第四集:整合JdbcTemplate和JPA(2020最新最易懂) 当前环境说明: Windows10_64 Maven3.x JDK1.8 MySQL5.6 SpringTool ...
- iptables基础原理和使用简介
概念简介 名称 Netfilter/iptables模块有两部分组成: Netfilter框架以及iptables,iptables又分为iptables(内核空间)和iptables命令行工具(用户 ...
- Jmeter——ForEach Controller&Loop Controller
今天来分享下Jmeter中的2款循环控制器,ForEach Controller和Loop Controller,在使用上还是有所区别. ForEach Controller ForEach Cont ...
- axios网络封装模块
功能特点 在浏览器中发送XMLHttpRequests请求 在node.js总发送http请求 支持Promise API 拦截请求和相应 转换请求和响应数据 axios请求方式 支持多种请求方式 a ...
- OJ-1:时钟问题【九度1553】
题目描述: 如图,给定任意时刻,求时针和分针的夹角(劣弧所对应的角). 输入: 输入包含多组测试数据,每组测试数据由一个按hh:mm表示的时刻组成. 输出: 对于每组测试数据,输出一个浮点数,代表时针 ...
- python的数据处理一
def load_data(filename): features = [] labels = [] f = open(filename, encoding='utf-8') medical = js ...
- leetcode113:sudoku-solver
题目描述 请编写一个程序,给数独中的剩余的空格填写上数字 空格用字符'.'表示 假设给定的数独只有唯一的解法 这盘数独的解法是: 红色表示填上的解 Write a program to solve a ...
