关于数据结构复习指针有感

数据结构-指针

若想改变一个变量的值,一开始肯定就直接想到给他赋予一个新值:
在这里插入图片描述
此时的i的值却并未发生变化,由于形参和实参虽然变量名都一样,但分配的内存单元却不同,因此修改形参的值并不会影响到实参,因此我们可以考虑到使用指针。
若想改变整型变量的值,则将其地址作为形参传入函数中:
在这里插入图片描述
此时将i的地址传入函数,则相当于z=&i,而 * z就相当于是i的值,此时的形参就是i的地址,就锁定了实参中的i,改变*z就是改变i值。而当想进一步改变p的值呢,若仍将&p传入f()函数中会发生什么呢?
在这里插入图片描述
此时出现提示:实参与形参类型不兼容,由于p已经是一个指针了,又要取p的地址作为形参,这时可以将&想象成增加一个维度而 * 看作是减少一个维度,此时&p就相当于一个二维指针,所以其类型就为指针的指针,所以可以使用g()函数:
在这里插入图片描述
所以这里将&p作为形参传入g()函数,所以x=&p, 则 * x=p,则需要一个强制转换成int * 类型的变量,由于p就是指针变量类型,这里的100并不是整型变量,而是一个指针变量。
所以得出结论就是:若想改变任何变量的值,将该值的地址作为形参传入函数进行重新赋值,由于取地址符可看作是增加了一个维度则在函数的形参中需要加上相对应的 * 来使形参和实参兼容。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值