m0_73524466 2022-09-27 09:01 采纳率: 81.3%
浏览 52
已结题

懂哥尽量help一下 求了

我在vs中 野指针那一块遇到了这么一些疑问 还请懂哥指导一下
1.首先 在空指针那一块 空指针是指向内存编号为0的指针 空指针的作用是初始化代码 空指针是不可以访问的 那么我想知道这个访问是什么意思 是解引用的意思吗?也就是说空指针没办法出现 p之类的字眼? 虽然空指针没办法访问的原因是它指向内存编号为0的地方 而内存编号在0到255区间内 是系统所占用的内存空间 所以没有权限访问 我想知道空指针内可以存放内存吗 还是说空指针内可以存放内存但是不可以访问罢了?
2.在野指针的学习中 int p=(int)0x1100 这个就是一个野指针的创建 我想问一下 如果我写成 intp=0x1100;
程序会提示我说 int类型的值不能用于初始化int类型的实体 这个是什么意思呢? 还有就是0x1100是16进制的内存地址编号 如果说我想变成10进制的话 确实应该在前面加上(int) 但是在野指针中 或者说在指针中 访问地址编号+变成10进制 却多了个号 变成了 (int) 我可以理解成这是指针的特殊用法吗?
希望各位懂哥指导一下 我刚学c++ 谢谢各位懂哥!小廷在这里表示真的感谢!

  • 写回答

2条回答 默认 最新

  • 莪是男神 2022-09-27 11:00
    关注

    首先,我要纠正一下你的观念

    1. 空指针不是指向内存编号为 0 的指针,空指针只是一种符号,代表当前指针没有指向任何内存空间
    2. 指针访问其实就是访问指针上指向的内存空间,如果把指针看成房屋的门牌号,那么内存空间就是房屋本身,我们所做的指针访问操作,其实就像获取房屋放置的物品
    3. 空指针本身 不能指向任何内存空间 ,你可以将指针变量指向空指针,表示当前指针变量没有指向任何内存空间,也可以将指针变量指向别的内存空间
    4. int * p = (int) 0x1100int * p = 0x1100 没有区别,(int)只是将其转成int类型的数据,不是转成十进制了
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(1条)

报告相同问题?

问题事件

  • 系统已结题 10月5日
  • 已采纳回答 9月27日
  • 创建了问题 9月27日

悬赏问题

  • ¥15 c语言怎么用printf(“\b \b”)与getch()实现黑框里写入与删除?
  • ¥20 怎么用dlib库的算法识别小麦病虫害
  • ¥15 华为ensp模拟器中S5700交换机在配置过程中老是反复重启
  • ¥15 java写代码遇到问题,求帮助
  • ¥15 uniapp uview http 如何实现统一的请求异常信息提示?
  • ¥15 有了解d3和topogram.js库的吗?有偿请教
  • ¥100 任意维数的K均值聚类
  • ¥15 stamps做sbas-insar,时序沉降图怎么画
  • ¥15 买了个传感器,根据商家发的代码和步骤使用但是代码报错了不会改,有没有人可以看看
  • ¥15 关于#Java#的问题,如何解决?