严格的函数通常包括三部分:函数声明 函数定义 函数调用
函数声明一般写在头文件里,即xx.h
函数定义一般写在实现文件里,即xx.m
函数调用写在需要的地方,比如main函数
函数部分五种类型:
1.自定义函数
基本格式:返回值类型 函数名称 (函数参数){
函数体;}
2.无参无返回值
形式:void 函数名(){ //引用时括号不能省
声明部分;//定义局部变量
语句;}
例:void hello( ){
printf("hello,world");}
3.无参有返回值
形式:返回值类型 函数名(){
声明部分;
语句;
return 返回值类型变量或常量;} //返回给主调函数
例:float PI( ){
return 3.1415926;}
4.有参无返回值
形式:void 函数名(形参表列){
声明部分;
语句;}
注:形参表列的格式:类型 变量名,类型 变量名,......
例:void printNumber ( int x ){
printf("number is %d",x);}
5.有参有返回值
形式:返回值类型 函数名(形参表列){
声明部分;
语句;
return返回值类型变量或常量;}
例:int max (int x,int y){
return x>y?x:y;}
形参概述
形式参数简称形参。在函数定义中,函数名后面小括号中的参数。
注意:
①形参定义后并不会立即分配存储空间,在函数调用的时候才会真正的分配存储空间。
②如果有多个形参,可以用逗号分隔。
③形参类型可以不同。
④在函数中不能定义和形参同名的变量。
例:int max(int x,int y) {
int x; //错误定义
return x>y?x:y;}
实参概述
实参出现在主调函数中。
形参和实参的功能是作数值的传递,发生函数调用时,主调函数把实参的值传送给被调函数的形参。
实参可以是变量、常量,也可以是表达式和函数。
形参和实参之间值传递的过程:
①函数的调用中,实参的值是一个已经确定的值,形参会拷贝实参的内容。
②实参和形参的个数、类型要一致。如果不一致,会造成精度丢失。
③形参的值在函数内部可以被修改,但是不会影响主调函数中实参的值。即形参的改变,不会影响实参的值。
例:int sum(int x,int y) { //①实参5,8分别赋值给x,y
x = 10,y = 20; //②x,y被重新赋值
return x + y;} //③返回值30
int main( ) {
int d = sum (5,8); //④返回值30赋给sum
printf("%d\n",d);
return 0;} |
|