【发布时间】:2020-07-15 23:00:30
【问题描述】:
我最近看了Can I use NULL as substitution for the value of 0?
简而言之,在答案中提到,不建议使用 NULL 代替 0 的值,这会导致 UB。
但在Is it safe to assume that the NULL constant is zero? 中,总之有人说假设if(!ptr)//ptr is a pointer 并不完全错误。
我知道问题的内容不同,但是如何解释使用 NULL 代替 0 是错误的,而 if(!ptr) 是正确的?
因为if(!ptr) 等价于if(ptr==0)(我认为这是对的,不确定)。
另外,我使用了if(ptr==0),它对我来说从来没有错(检查ptr 是否为NULL),并且我已经将0 分配给指针ptr 以及何时我调试了我的代码 ptr 为 NULL。这两种体验安全吗?
【问题讨论】:
标签: c null null-pointer