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日

悬赏问题

  • ¥20 测距传感器数据手册i2c
  • ¥15 RPA正常跑,cmd输入cookies跑不出来
  • ¥15 求帮我调试一下freefem代码
  • ¥15 matlab代码解决,怎么运行
  • ¥15 R语言Rstudio突然无法启动
  • ¥15 关于#matlab#的问题:提取2个图像的变量作为另外一个图像像元的移动量,计算新的位置创建新的图像并提取第二个图像的变量到新的图像
  • ¥15 改算法,照着压缩包里边,参考其他代码封装的格式 写到main函数里
  • ¥15 用windows做服务的同志有吗
  • ¥60 求一个简单的网页(标签-安全|关键词-上传)
  • ¥35 lstm时间序列共享单车预测,loss值优化,参数优化算法