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 ...
随机推荐
- E. Almost Regular Bracket Sequence 解析(思維)
Codeforce 1095 E. Almost Regular Bracket Sequence 解析(思維) 今天我們來看看CF1095E 題目連結 題目 給你一個括號序列,求有幾個字元改括號方向 ...
- java数据结构-06双向循环链表
双向循环链表跟单向链表一样,都是头尾相连,不过单向是尾指向头,双向是头尾互相指,可以从前往后查,也可以从后往前查 无头结点的双向循环链表 public class CircleLinkedList&l ...
- centos8 curl: (35) error:141A318A:SSL routines:tls_process_ske_dhe:dh key too small
centos8操作系统,curl -k https:/www.xxx.com 报错 curl: (35) error:141A318A:SSL routines:tls_process_ske_dh ...
- From delete library to run の 初见Django篇
一.虚拟环境简介 1.什么是虚拟环境? 虚拟环境是用于依赖项管理和项目隔离的python工具,允许python的第三方库安装在本地特定项目的隔离目录中,而不是全局安装. 2.虚拟环境的组成 ① 安装了 ...
- K8S Canal基于Prometheus进行实时指标监控
文章来源于本人的印象笔记,如出现格式问题可访问该链接查看原文 部署canal的prometheus监控到k8s中 1.grafana的docker部署方式:https://grafana.com/gr ...
- 用GitHub Pages搭建博客(七)
本篇介绍百度统计.百度搜索 一般来讲,部署了一个网站后,我们需要知道网站的浏览量,以便知道网站是否有人访问. 在Jekyll的模板中,由于国外开发者更多,一般的主题默认都开发了谷歌统计(Google ...
- GitHub 上适合新手的开源项目(Python 篇)
作者:HelloGitHub-卤蛋 随着 Python 语言的流行,越来越多的人加入到了 Python 的大家庭中.为什么这么多人学 Python ?我要喊出那句话了:"人生苦短,我用 Py ...
- c#三角形
int n = 10; for (int i = 1; i <= n; i++) { Console.Write(new string(' ', n - i)); for (int j = 1; ...
- Desition Tree附代码
- 25个Android酷炫开源UI框架
1.Side-Menu.Android 分类侧滑菜单,Yalantis 出品.项目地址:https://github.com/Yalantis/Side-Menu.Android2.Context-M ...