我要投搞

标签云

收藏小站

爱尚经典语录、名言、句子、散文、日志、唯美图片

当前位置:2019跑狗图高清彩图 > 指针 >

在C++中为什么要使用指针?

归档日期:07-08       文本归类:指针      文章编辑:爱尚语录

  有一说法是在存储一些大一点的数据时,将数据存在堆中,却将指向该数据的指针放到栈中,因为栈小但是运行快,堆虽然大但效率低。我想问的是难道数据大,那指向它的指针不也一样大么?...

  有一说法是在存储一些大一点的数据时,将数据存在堆中,却将指向该数据的指针放到栈中,因为栈小但是运行快,堆虽然大但效率低。我想问的是难道数据大,那指向它的指针不也一样大么?那这样栈里面有足够大的空间让指针进去吗? 谢谢 新手求解

  如果有高手能将指针怎样在堆 栈中运行的细节讲清楚 那真的不甚感激了!展开我来答

  可选中1个或多个下面的关键词,搜索相关资料。也可直接点“搜索资料”搜索整个问题。

  你述说的这种情况就像是图书的目录和页码 你要从一本书里找内容 是一页一页翻过去快呢 还是把里面的内容按标题放在目录里快呢 这里的栈就相当于目录 指针是目录里的标题 整本书是堆 页码是堆的一个个空间 如果从堆里找需要的内容 要一遍遍判断是不是要找的内容 就是一遍一遍翻过去找 你要根据指针找到你要的内容 就是按目录表示直接翻到那一页 这么说你清楚了吧是否就是说栈在调用指针时只是调用的指针的地址,而不是调用指指针向它保存的数据的地址?你说的基本正确 栈相当于一个数组 只是这个数组存的都是一个个指针 堆里面存的是大堆大堆的东西 调用栈里的指针时 只是将这个指针取出来 CPU使用的指针叫IP 这个指针指向哪儿 程序就执行到哪儿 需要堆里面的数据时 只要将栈里的指针赋给IP 那么IP就指向堆里的内容 从这里执行程序

  所以 相对于 大数据 指针 是很小的 像 32bit 跟个 int 差不多大

  来 调用 其 内部的值, 结构 在 内存中 其数据 有 固定的 位置 所以 通过 指针 访问 其数据

  是由 p 的 偏移 量 来实现 的 这个是 编译器的 工作 , 编译的 时候 已经 处理好了 ,

  所以 这个 结构 不管多大 , 通过 指针 读取他 数据 的速度 都是 一样快的,

  所以 把 指针 放到 栈 中 能有效 节省 空间 还能 节省 传递 大参数 时 所 耗费的 时间 ,

  所以能更快, 而且 栈 空间 很小 很宝贵 , 不可能 把 大数据 压进去的

  知道合伙人数码行家采纳数:40554获赞数:239911网络、设备维护、电路、弱电检测。向TA提问展开全部指针就是地址,另外还有指针变量,也就是存放地址的变量。

  平时使用的别的变量(指的指针变量以外的变量),就是用变量名字代表了它所在的空间,本质还是到这个地址去访问;而用指针变量访问,就是直接访问这个空间了,因此更高效。

  您好,就算数据很大,指针的内容保存的只是那段内存的基地址,一般为四个字节,所以不会很大的。

  展开全部指针也是数据类型。其表示一个地址。函数的参数设计尽量用指针或者引用。因为这会“节省内存拷贝的长度”(或直接通过寄存器传递)。

  另外堆和栈是没差别的。 有的数据是在函数中(栈)上定义,有的是采用动态从堆内存空间分配。

本文链接:http://masterblue.net/zhizhen/317.html