目录
1.函数参数
1.1实际以便把这些值传给实参参数
真正传给函数的参数是实参,比如,常量,变量,表达式,函数等。
无论实参是何种类型的量,在函数调用的时候它都是有确定的值的, 以便将这些值传给形参。
1.2.形式参数
形参就是函数名后面括号里面的变量,因为只有当函数调用时 它们才实例化(分配内存空间),所以叫形式参数,简称形参。形参当函数调用完成后就会自动销毁,因此形参只有在函数中才有效。
例如:
函数调用的时候创建形参并且将实参的值传给形参,可以简单的看做形参是实参一份临时拷贝。
2.函数调用
2.1传值调用
在函数调用的时候实参将自己的值传递给形参的方式就传值调用。
#include<stdio.h>
void Print(int a, int b)
{
printf("%d %d ", a, b);
}
int main()
{
int a = 3;
int b = 7;
Swap(&a,&b);
return 0;
}
2.2传址调用
在函数调用的实参将自己的地址传给形参的方式就是传址调用。
例如:
void Swap(int* a, int* b)
{
int tmp = *a;
*a = *b;
*b = tmp;
}
int main()
{
int a = 3;
int b = 7;
Swap(&a,&b);
return 0;
}
传值调用和传址调用的区别,如果你想通过函数里面的操作来改变实参的值就需要传址调用,比如上面的Swap函数用来交换两个变量的值,但是这样做也是有一定的风险的,如果你不想通过函数里面的操作来调用函数外面的但是采用了传址调用的方式那么就比较危险,但是传址调用就不会有这样的风险。 (而且传址调用会提高函数调用效率减少栈桢消耗,尤其当传递的实参很大的时候)