所有的参数传递本质上都是传值。传地址只不过传的是变量的地址而已,地址也是一个值。
1.传值。直接传变量的值。值拿来之后,变量就和值所在的函数没有关系了
1 #include <string.h>
2 #include <stdio.h>
3
4
5 void passByValue(int iParam)
6 {
7 printf("I'm the value. value:%d\n", iParam);
8 iParam = 10000;
9 printf("valueChanged:%d.\n", iParam);
10 }
11
12
13
14 int main()
15 {
16 int iNum = 100;
17 passByValue(iNum);
18 printf("iNum:%d\n", iNum);
19 return 0;
20 }
编译后打印的结果:
I'm the value. value:100
valueChanged:10000.
iNum:100
传进来的是iNum=100, 在passByValue里面改变了iParam=10000。出来了之后iNum还是100。这就是传值的局限性,它不能改变原始传入的变量的值。
2.传地址。也就是不传变量了,但是传变量的地址。知道地址了,就能顺着地址找到这个变量
1 #include <string.h>
2 #include <stdio.h>
3
4
5 void passByAddress(int *iParamAddress)
6 {
7 printf("I'm the addre