我在vs中 野指针那一块遇到了这么一些疑问 还请懂哥指导一下
1.首先 在空指针那一块 空指针是指向内存编号为0的指针 空指针的作用是初始化代码 空指针是不可以访问的 那么我想知道这个访问是什么意思 是解引用的意思吗?也就是说空指针没办法出现 p之类的字眼? 虽然空指针没办法访问的原因是它指向内存编号为0的地方 而内存编号在0到255区间内 是系统所占用的内存空间 所以没有权限访问 我想知道空指针内可以存放内存吗 还是说空指针内可以存放内存但是不可以访问罢了?
2.在野指针的学习中 int p=(int)0x1100 这个就是一个野指针的创建 我想问一下 如果我写成 intp=0x1100;
程序会提示我说 int类型的值不能用于初始化int类型的实体 这个是什么意思呢? 还有就是0x1100是16进制的内存地址编号 如果说我想变成10进制的话 确实应该在前面加上(int) 但是在野指针中 或者说在指针中 访问地址编号+变成10进制 却多了个号 变成了 (int) 我可以理解成这是指针的特殊用法吗?
希望各位懂哥指导一下 我刚学c++ 谢谢各位懂哥!小廷在这里表示真的感谢!
懂哥尽量help一下 求了
- 写回答
- 好问题 0 提建议
- 追加酬金
- 关注问题
- 邀请回答
-
2条回答 默认 最新
- 莪是男神 2022-09-27 11:00关注
首先,我要纠正一下你的观念
- 空指针不是指向内存编号为 0 的指针,空指针只是一种符号,代表当前指针没有指向任何内存空间
- 指针访问其实就是访问指针上指向的内存空间,如果把指针看成房屋的门牌号,那么内存空间就是房屋本身,我们所做的指针访问操作,其实就像获取房屋放置的物品
- 空指针本身 不能指向任何内存空间 ,你可以将指针变量指向空指针,表示当前指针变量没有指向任何内存空间,也可以将指针变量指向别的内存空间
int * p = (int) 0x1100
和int * p = 0x1100
没有区别,(int)只是将其转成int类型的数据,不是转成十进制了
本回答被题主选为最佳回答 , 对您是否有帮助呢?解决 无用评论 打赏 举报
悬赏问题
- ¥20 测距传感器数据手册i2c
- ¥15 RPA正常跑,cmd输入cookies跑不出来
- ¥15 求帮我调试一下freefem代码
- ¥15 matlab代码解决,怎么运行
- ¥15 R语言Rstudio突然无法启动
- ¥15 关于#matlab#的问题:提取2个图像的变量作为另外一个图像像元的移动量,计算新的位置创建新的图像并提取第二个图像的变量到新的图像
- ¥15 改算法,照着压缩包里边,参考其他代码封装的格式 写到main函数里
- ¥15 用windows做服务的同志有吗
- ¥60 求一个简单的网页(标签-安全|关键词-上传)
- ¥35 lstm时间序列共享单车预测,loss值优化,参数优化算法