静态数组实现堆栈的问题?结构体变量做函数参数使用引用和不用引用有什么样区别
时间:2018-03-03 13:36:01
浏览:次
点击:次
作者:
来源:
立即下载
在使用静态数组实现堆栈的时候,书上说「pop函数不需要从数组中删除元素,只减少顶部的值就足矣,因为用户此时已不能再访问这个旧值了。」
问题是,在使用静态数组的时候,如果调用pop函数,数组下标减① · 可是原来的值不还是在数组中么?为什么用户不能访问呢?
数据在那里时不受保护的,另外栈是①种协议结构,C语言是可以直接操作内存的,理论上来说是可以访问所有内存,当然实际上是不能的,内存受保护,程序只能访问自己的地址空间,以及共享空间。
用户能访问什么不能访问什么都是你提供的接口说了算的。东西在你口袋里,你说“我不给你用”他们就不能碰,就这么回事。
引用实际上是变量别名。效果等同于操作原对象。不传引用新建了①个Stack副本,副本指针的改变不影响原变量,里面的指针永远指向最初的地址,导致每次只是把这块内存的值从a改到b而没有实现自增。
平均评分
0人
- 5星
- 4星
- 3星
- 2星
- 1星
- 暂无评论信息