函数(Function)
0.引言
算法的结构化设计
标准函数(库函数)和自定义函数
程序从main函数开始,在main函数结束
main函数可以调用其他函数,但是其他函数不能调用main函数,main函数是系统调用的。
————————————————————————————————————————————————————————————————————————————————————
1.有参函数和无参函数
参数:函数的一个明显特征是使用时带(),必要时,括号里面还要包括数据或是变量,称为参数;
所以,函数又可以分为有参函数和无参函数
无参函数
返回类型 函数名()
{
函数体
}
有参函数
返回类型 函数名(函数参数列表)
{
函数体
}
实际参数和形式参数
形参:被调用函数后面括号里面的变量名称
实参:主调用函数调用一个函数时函数后面括号里面的参数
函数不允许嵌套定义
void a()
{
……
void b()
{
……
}
……
}
————————————————————————————————————————————————————————————————————————————————————
2.返回值
通过return 语句进行返回的内容;
返回值的类型必须和返回类型相同(函数返回值的类型要和函数类型相同);
void:
1.返回值(无返回值)
2.参数
Void func()
{
}
调用的时候直接用func();
————————————————————————————————————————————————————————————————————————————————————
3.函数的直接调用和间接调用
调用一个函数的时候必须要保证要么调用的函数定义在我的前面,要么就是已经完成了对函数的说明(把函数头抄一遍就行)
声明的作用是把函数名,函数参数的个数和参数类型等信息通知编译系统,以便在遇到函数调用时,编译系统
能够正确识别函数并检查调用是否合法
int sum(int a,int b)
{
return a + b;
}
//int sub(int ,int );
int main()
{
int sub(int a,int b);(这两句声明都可以,位置也都可以)
printf("sum = %d\n",sub(3,2));
printf("sub = %d\n",sum(3,2));
return 0;
}
int sub(int a,int b)
{
return a - b;
}
声明和定义是有区别的!!!
函数要注意的几个点:
1、形参只能是变量或表达式,不能是常量;
2、实参和对应的形参占用不同的存储单元,但共用同一段存储空间,都在栈里面。