C语言中函数的调用目的就是为了简化代码,能够让代码重复使用,且使代码看起来便于理解
格式: 返回值类型 函数名(形式参数列表){ 函数体;//某个功能 }
注意:函数名为大驼峰形式,例如MaxTopNum ,Max等
下面来看一段代码:
#include <stdio.h> int main() { int num1 = 0; int num2 = 0; int sum = 0; printf("输入两个操作数:>"); scanf("%d %d", &a, &b); sum = num1 + num2; printf("sum = %d\n", sum); return 0; }
此段代码是用来求两数之和的,我们可以看到此时并没有用到函数的调用,那么该怎么进行修改呢?此时我们给出另一段代码:
#define _CRT_SECURE_NO_WARNINGS 1 #include<stdio.h> int Add(int a,int b)//Add方法为子函数 { int sum = a + b; return sum; } int Add1(int a, int b, int c)/*此处其实也可以直接写return a+b+c 只是在这里我们更强调方法的一个重复调用*/ { int sum1 = Add(a,b);// int sum2 = Add(sum1, c); return sum2;//此处要注意尽量不要写打印语句,写return语句 } int main()//main方法为主函数 { int x = 10; int y = 20; int z = 30; int sum1 = Add(x, y);/*方法的调用:1.注意使用函数名进行调用 2.对应的参数类型以及个数都要匹配 3.如果当前函数是有返回值的,则一定要接收它的返回值*/ int sum2 = Add1(x, y, z); printf("x与y的和为%d\n", sum1); printf("x,y,z的和为%d\n", sum2); return 0; }
此段代码我们用到了函数的调用,为了使大家更加深刻理解函数的调用,我们还给出了求三个数之和的方法,下面我们挨个分析:
int Add(int a,int b)//Add方法为子函数 { int sum = a + b; return sum; }
此时我们定义了一个名为Add的函数(Add为子函数,而main函数为主函数),其参数为两个整形变量a,b,返回值类型为int,我们将所需要相加的两个数放入形参中,并用sum来作为返回值,此时我们便定义了一个求两个数之和的和函数Add.
int Add1(int a, int b, int c)/*此处其实也可以直接写return a+b+c 只是在这里我们更强调方法的一个重复调用*/ { int sum1 = Add(a,b);// int sum2 = Add(sum1, c); return sum2;//此处要注意尽量不要写打印语句,写return语句 }
此时我们定义了一个名为Add1的函数(Add1为子函数,而main函数为主函数),其参数为三个整形变量a,b,c,返回值类型为int,我们将所需要相加的三个数放入形参中,注意此时我们可以有两种写法:1.我们可以直接返回a+b+c. 2.我们可以先调用Add方法将其中的两个数相加后赋给一个int变量sum1,然后再调用Add方法将之前定义的int变量sum1与剩余的数字相加,相当于重复调用我们一开始所定义的Add方法,最后把两者相加的值赋给sum2,最终返回的新的整形变量sum2便是我们所求的三数之和,此时我们便定义了一个求三个数之和的和函数Add1.,其核心思想便是函数的重复调用。
下面我们来看主函数代码:
int x = 10; int y = 20; int z = 30; int sum1 = Add(x, y);/*方法的调用:1.注意使用函数名进行调用 2.对应的参数类型以及个数都要匹配 3.如果当前函数是有返回值的,则一定要接收它的返回值*/ int sum2 = Add1(x, y, z); printf("x与y的和为%d\n", sum1); printf("x,y,z的和为%d\n", sum2); return 0;
此时我们便可以开始测试我们所写的函数是否正确,此时我们给出三个整数分别为10,20,30,此时我们计算出x与y的和为30,x+y+z的和为60,说明函数编写无误,
下面来看运行结果: