第九章:
一:函数的定义:
函数类型 函数名称(函数参数表){
说明语句序列;
可执行语句序列;
}
(1)函数名是唯一标识一个函数的名字,它的命名规则变量完全一样
(2)函数类型,从语法规则来讲,函数的类型可以是除函数和数组以外的任何类型
(3)形式参数是用于调用函数和被调用函数之间的数据传递
(4)函数体是由一对花括号{}括起来的,其中可以包含说明语句和执行语句,函数的功能是由函数体内部的各个语句来实现的
二、函数在使用过程中的三个步骤:
函数的定义:指出函数通过return返回值的类型,除了取常用的各种数据类型为,还有一种特殊的类型void,void型的函数无返回值,默认的数据类型为int。
函数声明:被调用的函数需要先声明后调用,但若定义位于调用前面,可省略声明。
函数调用:当需要是用某个功能模块的时候我们就可以很方便的调用所需的函数。
三、函数的参数:
从函数的形式上看,函数分为两类
1、无参函数:在调用无参函数时,主调用函数不讲数据传递给被调用函数,无参函数可以带或不带返回值
2、有参函数:在调用函数时,在主函数和被调用函数直接有数据传输,也就是说:主调函数可以将数据传递给被调用函数使用,被调用函数中的数据也可以带回供主调函数使用
当被调用函数是有参函数时,主调用函数和被调用函数间有数据传递关系需要注意:
1、定义函数时的参数称为形式参数,简称形参,形式参数函数为被调用时没有确定值,只是形式上的参数,调用函数时的参数称为实参,实参可以是变量、常量或表达式,有确定的值,是实实在在的参数,函数定义是的形参不占内存,只有发生调用时,参数才被分配单元,接受实参传来的值。
2、定义函数时,必须定义形参的类型,函数的形参和实参个数要求相等,对用类型一致,且顺序相同,形参和实参可以同名,形参是局部于该函数的变量,就算形参和实参同名也没关系,也是两个不同的变量,占用不同的内存单元。
3、形式参数用于调用函数和被调用函数之间的数据传递,在函数体内对其操作,因此,他也需要类型说明,这有形式参数说明部分完成。
函数声明:被调用的函数需要先声明后调用,但若定义位于调用前面,可省略声明。
函数调用:当需要是用某个功能模块的时候我们就可以很方便的调用所需的函数。
三、函数的参数:
从函数的形式上看,函数分为两类
1、无参函数:在调用无参函数时,主调用函数不讲数据传递给被调用函数,无参函数可以带或不带返回值
2、有参函数:在调用函数时,在主函数和被调用函数直接有数据传输,也就是说:主调函数可以将数据传递给被调用函数使用,被调用函数中的数据也可以带回供主调函数使用
当被调用函数是有参函数时,主调用函数和被调用函数间有数据传递关系需要注意:
1、定义函数时的参数称为形式参数,简称形参,形式参数函数为被调用时没有确定值,只是形式上的参数,调用函数时的参数称为实参,实参可以是变量、常量或表达式,有确定的值,是实实在在的参数,函数定义是的形参不占内存,只有发生调用时,参数才被分配单元,接受实参传来的值。
2、定义函数时,必须定义形参的类型,函数的形参和实参个数要求相等,对用类型一致,且顺序相同,形参和实参可以同名,形参是局部于该函数的变量,就算形参和实参同名也没关系,也是两个不同的变量,占用不同的内存单元。
3、形式参数用于调用函数和被调用函数之间的数据传递,在函数体内对其操作,因此,他也需要类型说明,这有形式参数说明部分完成。
#include<stdio.h>
void riji();//函数的声明
int main(void) {
int y = 1;
printf("C语言");
riji();//调用函数
printf("基础\n");
int x;//变量的声明
x = 1;//变量的定义
y = x +1;//调用变量
}
void riji() {//函数的定义
printf("编程");
}
4.函数的返回值
/*将一整数加15后显示出来*/
#include <stdio.h>
int add (int n) {
n += 15;
return n;
}
int mian() {
int num;
int result;
num = 15;
result = add(num);
printf("result = %dn", result);
printf("num = %dn", num);
return 0;
}