函数分为库函数和自定义函数
(1)实际参数(实参) ? ? ?真实传给函数的参数,叫实参。实参可以 是:变量,常量,表达式,函数等。无论实参是何种? ?类的量,在进行函数调用时,它们都必须有特点的值,以便把这些值送给形参。 形式参数(形参) ? ? 形参是指函数名后括号中的变量,因为形式参数只有在函数被调用过程中才实例化(分配内存单元),所以叫形式参数。形式参数当函数调用完之后就自动销毁了。因此形参只在函数中有效。(当实参传给形参的时候,形参相当于是实参的一份临时拷贝,对实参没有影响) (2)函数的调用 ? ?传值调用 ? ? ?函数的的形参和实参分别占有不同内存块,对形参的修改不会影响实参 ? ?传址调用 ? ? 传址调用是把函数外部创建变量的内存地址传递给函数参数的一种调用函数的方式 ? ? 这种传参方式可以让函数和函数外边的变量建立起真正的联系,也就是函数内部可以直接操作函数外部的变量(&a,&b) ? ? eg:写一个函数交换a,b两个变量的值
void swap(int*pa,int*pb)
{
int tmp=0;
tmp=*pa;
*pa=*pb;
*pb=tmp;
}
......
swap(&a,&b);
?函数的嵌套调用和链式访问
嵌套调用:
函数和函数之间可以有机的组合
eg
#include<stdio.h>
void new_line()
{
printf("hehe\n");
}
void three_line()
{
int i=0;
for(i=0;i<3;i++)
{
new_line();
}
int main()
{
three_line();
return 0;
}
运行结果:
hehe
hehe
hehe
链式访问:
把一个函数的返回值作为另外一个函数的参数。
eg
#include<stdio.h>
int main()
{
printf("%d",printf("%d",printf("%d",43)));
return 0;
}
请问输出结果?
答案是:4321(printf函数的返回值为打印的字符的长度)
|