*参数做形参和*&参数做形参的区别(我的理解.)

来源:互联网 发布:淘宝分享链接微信屏蔽 编辑:程序博客网 时间:2024/06/08 10:57

1.*&做形参相当于指针的引用.用于对指针变量的内容(而非其指向的内容)进行操作.

其传入的是指针变量的地址.可以影响到指针变量内容的变化.

 

说明:increase前p_i的内的数据是:0012ff6c,0012ff6c的地址内存放整数10.

increase之后,对p_i内的数据进行了增量操作,结果为:0012ff70,由于0012ff70
为未知地址,其内存放的为乱码.
这说明通过指针引用,我们可以修改指针变量内的数据.

2.指针做形参时我们并不能修改指针变量内的数据.

经过increase_1操作之后的输出结果并没有发生变化.这是由于在参数传递时,由于没有使用&,这里只传入了指针p_i内的值,而非p_i的地址.

所有的操作都在increase内新建的副本上进行,并没有影响到外部的p_i变量.

但是由于传递的是p_i内的值,即整数i的地址,所以如果在此函数中对变量i的值进行修改,则会影响到外部i的变化.

原创粉丝点击