------
Java培训、Android培训、iOS培训、.Net培训、期待与您交流! -------
函数:功能相对独立的代码段。
分为:
库函数 和
用户自定义函数
格式:返回值类型 函数名称(函数参数){函数体}
函数的定义到使用需要三步:1.声明函数
2.定义函数
3.调用函数
无参无返:void是无返回值函数,执行后不会向调用者返回执行结果。也称"空类型"。
void 函数名(){函数体 声明部分;}
无参有返:
返回值类型 函数名(){函数体;
return 返回值类型变量或常量;}
有参无返:
void 函数名(形式参数列表){函数体 声明部分}
有参有返:
返回值类型 函数名(形式参数列表){函数体;
return 返回值类型变量或常量;}
-----------------------------------------------------------------------------------
函数的参数 分为
形式参数 和
实际参数
形参出现在函数定义中。
实参出现在函数调用中。
形参和实参的实质是值传送。
形参和实参有以下几个注意点:
1) 形参变量只有在函数被调用时才分配内存单元,在调用结束时,立刻释放所分配的内存单元。
因此,形参只有在函数内部有效,不能在函数外部使用。
2) 实参可以是常量、变量、表达式、函数等,调用时都必须有确定的值。
3) 实参和形参在数量上、类型上、顺序上必须严格一致,否则会发生“类型不匹配”的错误。
函数的值只能通过
return语句返回主调函数。
没有返回值的函数为空类型(void)
凡不要求返回值的函数都应定义为空类型。
一般形式为:
return 表达式;
return (表达式);
例如:
return max;
return a+b;
return (100+200);
一旦遇到 return 语句,不管后面有没有代码,函数立即运行结束,将值返回。
- intfunc(){
- int a=100, b=200, c;
- return a+b;
- return a*b;
- return b/a;
- }
返回值是300,之后的return并不读取。
-----------------------------------------------------------------------------------------------------------
函数的声明:
在调用函数之前,应该对被调函数进行声明。
格式是 :
函数头; (函数体{}之前的部分,包括小括号部分的形参。)
注意:1. 如果被调函数的返回值类型是 int 类型,则可以不声明。
2.被调函数如果写在主调函数之前,则可以不声明。
函数调用的一般形式为:
函数名(实参列表);
实参可以是常数、变量、表达式。
如: m=max(3,8);
m=max(a,b);
m=max(a+3,b+8);
m=max(a=100,b++);
注意:
1.函数表达式
m=max(3,8)+15
2.函数可以被调用于其他函数的实参(可用于求三个数的最大值)
m=max(34,5);
m=max(max(34,5),100);
3.函数名不能与变量名重名
#include <stdio.h>
int main(int argc, const char * argv[]) {
//主调函数
int max(int x,int y);
//声明函数
int x=max(max(30,40),55);
//调用函数 嵌套
printf("%d\n",x);
return 0;
}
int max(int x,int y) {
//被调函数
return x>y?x:y;
}