指针变量初始化为:0 ?

C加伽 2014-05-03 08:08:50
int *p=0;
有什么作用?
...全文
831 14 打赏 收藏 转发到动态 举报
写回复
用AI写文章
14 条回复
切换为时间正序
请发表友善的回复…
发表回复
ForestDB 2014-05-08
  • 打赏
  • 举报
回复
0表示不指向任何特定的对象。
C加伽 2014-05-07
  • 打赏
  • 举报
回复
这句话是什么意思?
dbzhang800 2014-05-07
  • 打赏
  • 举报
回复
引用 12 楼 u014377200 的回复:
《C++Primer》第四版 4.2.2 指针的定义和初始化 5。避免使用未初始化的指针 如果必须分开定义指针和其所指向的对象,则将指针初始化为0。 ------------ 这句话是什么意思?
这不就是你一开始贴的代码的意思么?
C加伽 2014-05-07
  • 打赏
  • 举报
回复
《C++Primer》第四版 4.2.2 指针的定义和初始化 5。避免使用未初始化的指针 如果必须分开定义指针和其所指向的对象,则将指针初始化为0。 ------------ 这句话是什么意思?
buyong 2014-05-04
  • 打赏
  • 举报
回复
引用 6 楼 u014377200 的回复:
定义一个指针,立刻初始化它,就可以了。 为什么,初始化:0?
为什么,初始化:0,你想初始化几?
灌水号 2014-05-04
  • 打赏
  • 举报
回复
http://bbs.csdn.net/topics/360099212
z_bo 2014-05-04
  • 打赏
  • 举报
回复
楼主有过用if(NULL == p)的时候吧, 如果人们释放指针后不置零。 野指针如何判断? 野指针也有为0的可能
lm_whales 2014-05-04
  • 打赏
  • 举报
回复
引用 2 楼 mujiok2003 的回复:
可以明确表示p刚开始指向一个无效地址,读写一个无效地址通常是访问违例, 这通常说好事, 可以让bug尽早显形。 于此相比:
//栈上
int *p; 
p指向一个不确定的值, 如果读写一个不确定地址就是不确定性行为了。谁敢用一个具有不确定性行为的系统!!
++ 另外: 由于 C++ delete, 已经处理了指针为NULL的情况; 所以 delete NULL 是没有问题的 因此,没有分配内存的指针,初始化为NULL,可以不用判断,直接delete 这样,对于包含指针成员的类。 构造函数,把指针成员初始化为NULL, 析构函数,不用判断,直接delete 一点问题也没有
hanyue03 2014-05-03
  • 打赏
  • 举报
回复
初始化0就是说这个指针暂时没有指向任何有用的地址,除非后面再用赋值语句赋值给P。要不然后面对P的解引用操作,指针加减法==都会报错;
C加伽 2014-05-03
  • 打赏
  • 举报
回复
定义一个指针,立刻初始化它,就可以了。 为什么,初始化:0?
wanren13 2014-05-03
  • 打赏
  • 举报
回复
引用 4 楼 u014377200 的回复:
楼上各位: 问题是问:有什么作用?
3 楼已经回答了。可以区分哪些指针还没有使用,哪些指针是已经在使用。
C加伽 2014-05-03
  • 打赏
  • 举报
回复
楼上各位: 问题是问:有什么作用?
Falleyes 2014-05-03
  • 打赏
  • 举报
回复
和C++里面推荐指针立即初始化为nullptr一个道理,如果没有初始化,在后文中又忘记定义,那么该指针就是未定义的,可能造成运行成功但很难找到出错原因的bug。
mujiok2003 2014-05-03
  • 打赏
  • 举报
回复
可以明确表示p刚开始指向一个无效地址,读写一个无效地址通常是访问违例, 这通常说好事, 可以让bug尽早显形。 于此相比:
//栈上
int *p; 
p指向一个不确定的值, 如果读写一个不确定地址就是不确定性行为了。谁敢用一个具有不确定性行为的系统!!

65,208

社区成员

发帖
与我相关
我的任务
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++ 技术论坛(原bbs)
社区管理员
  • C++ 语言社区
  • encoderlee
  • paschen
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
  1. 请不要发布与C++技术无关的贴子
  2. 请不要发布与技术无关的招聘、广告的帖子
  3. 请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下

试试用AI创作助手写篇文章吧