函数的值传递
值传递 -> 函数调用的时候。把实参传递给形参
当值传递的时候,如果形参发生改变,不会影响实参。
#include <iostream>
using namespace std;
// 如果函数不需要返回值,可以声明的时候写`void`
void changenum(int a, int b)
{
cout << a << "\t" << b << endl;
int temp = a;
a = b;
b = temp;
cout << a << "\t" << b << endl;
//return 不需要返回值可以不写
}
void main()
{
int a = 10;
int b = 20;
changenum(a, b);
cout << a << "\t" << b << endl;
}
运行结果:
10 20
20 10
10 20
第一遍 第二遍打印的 a 和 b 是形参的值。第三遍的打印是实参的数据值。在形参中改变后不会影响实参数。
准确说,我们把上面的简化一下:
#include <iostream>
using namespace std;
void changenum(int num1, int num2)
{
int temp = a;
a = b;
b = temp;
}
void main()
{
int a = 10;
int b = 20;
changenum(a, b);
}
准确说a
b
num1
num2
都会开辟一块内存用于存储。当程序在执行期间,a
和 b
其实是没有发生任何改变的。
:-)