1.无返回值,无参数
2.无返回值,有参数
3.有返回值,有参数
4.有返回值,无参数
5.有返回值,有多个同类型参数
6.有返回值,有多个参数,参数类型不同
7.根据需求设计的
例1:无返回值,有参数
#include<stdio.h>
int fun(int x)
{
int y;
printf("函数调用传递给子函数形参x的值 = %d\n",x);
printf("子函数未赋初值的y = %d,y的地址 = %p\n",y,&y);
}
int main()
{
int y = 0;
int x = 100;
printf("main中的y初值 = %d,y的地址 = %p\n",y,&y);
printf("main中的x初值 = %d,x的地址 = %p\n\n",x,&x);
y = fun(x);
printf("函数调用后,子函数没有返回值,所以会随机返回1个任意值 = %d\n" ,y);
return 0;
}
可以看到形参,实参都会开辟一个空间。
只是,作为局部变量,函数调用结束后,开辟的空间会被释放。
例2:有返回值,有参数
#include<stdio.h>
int fun(int x)
{
int y;
printf("函数调用传递给子函数形参x的值 = %d\n",x);
printf("子函数未赋初值的y = %d,y的地址 = %p\n",y,&y);
y = 2*x+9;
return y;
}
int main()
{
int y = 0;
int x = 100;
printf("main中的y初值 = %d,y的地址 = %p\n",y,&y);
printf("main中的x初值 = %d,x的地址 = %p\n\n",x,&x);
y = fun(x);
printf("函数调用后,子函数的返回值传递进main中 = %d\n" ,y);
return 0;
}
子函数有返回值,那么发生函数调用后,子函数的返回值就被赋值给了main中的具体的变量。
不说了,过于简单。