函数:在C语言中分为两类 (1)系统提供的标准函数库,由系统定义,只需要直接调用。
(2)由用户自定义。
函数的定义:指出函数通过return返回值的类型,除了常见的数据类型,还有一种特殊的类型void,void无返回值,在默认情况下函数类型为int。
函数的声明:被调用的函数必须先声明再调用,若定义在调用前,则可以省略声明。
例如:
//先声明后定义
#include<stdio.h>int sum();
int main (void) {
printf("这是一只");
sum();
return 0;
}
int sum() {
printf("灰色的狗。");
return 1;
}
//先定义后调用
#include<stdio.h>int sum() {
printf("灰色的狗。");
return 1;
}
int main (void) {
printf("这是一只");
sum();
return 0;
}
函数的调用:当需要使用某个功能模块时就可以很方便调用所需的函数了。
函数的参数:(1)有参函数:
a、定义函数时的参数称为形式参数也叫形参,形参没有确定的值,在被调用时的参数称为实参,实参可以是变量、常量或表达式,有确定的值,是实在的参数。在定义函数时形参不占内存单元,只有在调用时,参数才被分配内存单元,接受实参传来的值。
b、定义函数是必须定义形参的类型。函数的形参与实参类型相同,个数相同,顺序对应一致。形参与实参可以同名,形参是局部于函数内的变量。他们是两个不同的变量,占用不同的内存单元。
c、形参是调用函数与被调用函数之间的数据传递,在函数体内对其操作,因次,它也需要类型说明,这由形参部分完成。
(2)无参函数:在调用无参函数时,主调函数不将数据传递给被调用函数,无参函数可以带或不带返回值。
例如:求输入三个数中的最大值
#include<stdio.h>void max(int x, int y, int z);
int main(void) {
int i, j ,k;
printf("i, j, k:\n");
scanf("%4d%4d%4d",&i, &j, &k);
max(i,j,k );
return 0;
}
void max(int x, int y,int z) {
int m;
m = x > y ? x : y;
m = m > z ? m : z;
printf("三个数中最大值为:%d\n",m);
}
普通变量作为函数参数:
例如:将一个整数加5后显示出来
#include<stdio.h>
int add(int a);
int main(void) {
int b = 0;
int sum;
sum = add(b);
printf("sum的值是%d",sum);
return 0;
}
int add(int a) {
a += 5;
return a;
}