赞
踩
- #include <iostream>
- using namespace std;
-
- int f(int n)
- {
- cout << n << endl;
- return n;
- }
-
- void func(int param1, int param2)
- {
- int var1 = param1;
- int var2 = param2;
- printf("var1=%d,var2=%d", f(var1), f(var2));//如果将printf换为cout进行输出,输出结果则刚好相反
- }
-
- int main(int argc, char* argv[])
- {
- func(1, 2);
- return 0;
- }
- //输出结果
- //2
- //1
- //var1=1,var2=2
函数的调用过程:
1)从栈空间分配存储空间
2)从实参的存储空间复制值到形参栈空间
3)进行运算
形参在函数未调用之前都是没有分配存储空间的,在函数调用结束之后,形参弹出栈空间,清除形参空间。
数组作为参数的函数调用方式是地址传递,形参和实参都指向相同的内存空间,调用完成后,形参指针被销毁,但是所指向的内存空间依然存在,不能也不会被销毁。
当函数有多个返回值的时候,不能用普通的 return 的方式实现,需要通过传回地址的形式进行,即地址/指针传递。
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。