静态数组实现堆栈的问题?结构体变量做函数参数使用引用和不用引用有什么样区别

时间:2018-03-03 13:36:01   浏览:次   点击:次   作者:   来源:   立即下载

在使用静态数组实现堆栈的时候,书上说「pop函数不需要从数组中删除元素,只减少顶部的值就足矣,因为用户此时已不能再访问这个旧值了。」

问题是,在使用静态数组的时候,如果调用pop函数,数组下标减① · 可是原来的值不还是在数组中么?为什么用户不能访问呢?

数据在那里时不受保护的,另外栈是①种协议结构,C语言是可以直接操作内存的,理论上来说是可以访问所有内存,当然实际上是不能的,内存受保护,程序只能访问自己的地址空间,以及共享空间。

用户能访问什么不能访问什么都是你提供的接口说了算的。东西在你口袋里,你说“我不给你用”他们就不能碰,就这么回事。

引用实际上是变量别名。效果等同于操作原对象。不传引用新建了①个Stack副本,副本指针的改变不影响原变量,里面的指针永远指向最初的地址,导致每次只是把这块内存的值从a改到b而没有实现自增。

收起

相关推荐

相关应用

平均评分 0人
  • 5星
  • 4星
  • 3星
  • 2星
  • 1星
用户评分:
发表评论

评论

  • 暂无评论信息