指针做函数参数

函数运行时,会新开辟空间才存储参数副本,因而函数中对此副本的改变并不能影响到父函数。而以指针作为函数参数,就相当于给两条平行的、永不相交的路上横向答了一座桥。就是依靠指针的特点来完成的,指针指向别的内存空间,因而,即使函数实现时为指针参数创建了副本,但此副本和远指针指向同一块内存区域,他们两个任何一个对此空间的修改虽不影响另一个指针的值,但会影响到这个值,即地址空间内存储的变量,这就是其中的原理。但要注意如下代码:

这段代码运行后会产生“不能为写的”错误,是对指针这种特性的错误理解造成的。函数内,q=&p[top]已经使参数的副本改变了值,即父函数中的指针指向的不是同一块区域了。所以这样的写法是错误的。正确的实现应该是:

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值