74 C语言自定义函数
来源:互联网 发布:实物期权 知乎 编辑:程序博客网 时间:2024/05/29 13:22
C学习网:链接->C学习网
C训练网:链接->C训练网
函数是一段可以重复使用的代码,用来独立地完成某个功能,它可以接收用户传递的数据,也可以不接收。
无参函数的定义
如果函数不接收用户传递的数据,那么定义时可以不带参数。如下所示:返回值类型 函数名(){
函数体
}
- 返回值类型可以是C语言中的任意数据类型,例如 int、float、char 等。
- 函数名是标识符的一种,命名规则和标识符相同。函数名后面的括号
( )
不能少。 - 函数体是函数需要执行的代码。即使只有一个语句,也要由
{ }
包围。 - 在函数体中使用return语句返回数据。
例如,定义一个函数,计算1加到100的结果:
- int sum(){
- int i, sum=0;
- for(i=1; i<=100; i++){
- sum+=i;
- }
- return sum;
- }
sum
中,通过return
语句返回。sum为int
型,所以返回值类型也必须为int
,要一一对应。return
是C语言中的一个关键字,只能用在函数中,用来返回处理结果。将上面的代码补充完整:
- #include <stdio.h>
- int sum(){
- int i, sum=0;
- for(i=1; i<=100; i++){
- sum+=i;
- }
- return sum;
- }
- int main()
- {
- int a = sum();
- printf("The sum is %d\n", a);
- return 0;
- }
The sum is 5050
函数不能嵌套定义,main 也是一个函数定义,要将 sum 放在 main 外面。函数必须先定义后使用,所以 sum 只能在 main 前面。
注意:main 是函数定义,不是函数调用。当可执行文件加载到内存后,系统从 main 函数开始执行,也就是说,系统会调用我们定义的 main 函数。
无返回值函数
有的函数不需要有返回值,或者返回值类型不确定(很少见),那么用void表示,例如:
- void hello(){
- printf ("Hello,world \n");
- //没有返回值就不需要 return 语句
- }
void
是C语言中的一个关键字,表示空类型或无类型,绝大部分情况下也就意味着没有 return 语句。有参函数的定义
如果函数需要接收用户传递的数据,那么定义时就要带参数。如下所示:返回值类型 函数名(参数列表){
函数体
}
- int max(int a, int b){
- if (a>b){
- return a;
- }else{
- return b;
- }
- }
,
分隔。参数列表中给出的参数可以在函数体中使用。调用 max() 函数时可以直接传递整数:
int n = max(10, 20);
也可以传递变量:int a = 10, b = 20;int n = max(a, b);
也可以整数和变量一起传递:int a = 10;int n = max(a, 20);
变量 n 得到的值都是20。函数定义时给出的参数称为形式参数,简称形参;函数调用时给出的参数(传递的数据)称为实际参数,简称实参。函数调用时,将实参的值传递给形参,相当于一次赋值操作。注意:实参和形参的类型、数目必须一致。
将上面的代码补充完整:
- #include <stdio.h>
- int max(int a, int b){
- if (a>b){
- return a;
- }else{
- return b;
- }
- }
- int main(){
- int num1, num2, maxVal;
- printf("Input two numbers: ");
- scanf("%d %d", &num1, &num2);
- maxVal = max(num1, num2);
- printf("The max number: %d\n", maxVal);
- return 0;
- }
Input two numbers: 100 200
The max number: 200
定义max时,变量a、b的值都是未知的;调用max时,分别将num1、num2的值传递给a、b,类似于:
a=num1;b=num2;
return 语句可以有多个,可以在函数体的任意位置。在max中,根据 if 的判断结果来执行不同的 return 语句。函数一旦遇到 return 语句就返回(停止执行),后面的所有语句都不会被执行到,例如:
- int max(int a, int b){
- int n = (a>b) ? a : b;
- return n;
- printf("Function is performed\n");
- }
阅读全文
0 1
- 74 C语言自定义函数
- c语言自定义函数大全
- C语言中自定义函数
- C语言:自定义字符串函数
- C语言自定义函数细节
- C语言:自定义函数/字符串函数
- C语言:自定义格式时间函数
- postgresql 多行变一行,C语言自定义函数
- DB2自定义函数(C语言)实战
- DB2自定义函数(C语言)
- 自定义的delay()函数(C语言)
- C语言实现自定义多参数函数
- 自定义C语言几个常见函数
- C语言自定义字符串复制函数
- 【C语言】自定义连接两个字符串函数
- C语言 - 自定义实现字符串统计函数
- C语言 - 自定义字符串复制函数
- C语言学习-调用自定义函数
- js和css的外部样式区别
- js 控制移动
- py-faster-rcnn 训练常见错误
- EventBus使用简介
- STM32F10x ADC基本原理简介
- 74 C语言自定义函数
- Python的时间函数处理
- springmv 后台传给前台页面数据的4种方法
- 青年人,还有什么理由不顽强到底呢
- Linux
- LeetCode (Maximum Depth of Binary Tree)
- 函数实现的契约——线程安全与透明引用
- Redis中5种数据结构的使用场景介绍
- 牛腩——基础知识(一)