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,说明函数编写无误,
下面来看运行结果: