函数的值传递,指针传递,引用传递。
int a = 10;
//创建一个变量a,这里其实变量a的属性包含两部分,地址0x1234和值10;
//可以把地址0x1234视为访问值10的一个接口。
//如果要修改变量a的值可以通过直接访问地址和间接访问地址的方式修改值10
直接访问地址修改值10,如下:
a = 20;
间接访问地址修改值10的方式如下:
int * b = &a; //将a的地址存入到指针变量b中。
(*b)++;//解引用获取a的地址指向的值10,然后进行++操作。
注意:内存地址是不可以被修改的。
现在要把实参a传到形参b中。
值传递
把实参变量的a的值10拷贝一份给形参变量b,之后两者没有任何联系。
这时,a和b的地址不一样,指向的值都是10.
指针传递
把实参变量a的地址0x1234传递给形参指针变量b,之后两者没有任何联系,
这时b的值包含了它的地址0x4567和它的值0x1234。可以通过解引用的方式
*b 获取0x1234指向的值10, 并且可以操作该值间接修改变量a指向的值。
引用传递
把实参变量a的地址和指向的值全部传递给变量b,对变量b操作就是对变量a操作。
参考链接