如何理解空指针的使用

如何理解空指针的使用

* 来源: * 作者: * 发表时间: 2020-04-06 0:32:48 * 浏览: 1
问题:我在一本书中看到一个句子,必须遵循两个简单的规则:1.当在源代码中需要空指针常量时,请使用ldquo,0或ldquo,NULL。 2.如果在函数调用中将ldquo,0或ldquo,NULL用作参数,请将其转换为被调用函数所需的指针类型。第二项是什么意思?答:对于第一个,它很容易理解。在指针的上下文中,0是编译器的空指针,但是有些人不喜欢看起来像magicnumber的代码中的值0,因此对于NULL,两者对于编译器都是相同的。即使在某些平台上空指针不是全零地址,也可以通过if(p == 0)来判断,并且编译器将确保它是正确的。对于第二点,我在上一段中说了“ ldquo”。在指针的上下文中,0是编译器的空指针,但是在函数调用中,因为它不是指针上下文,所以编译器可能无法识别0来表示Null指针,通常良好的编程规范要求显式强制转换以生成空指针在函数调用的上下文中,强制编译器将0视为空指针,否则编译器会将其视为常量0,这在熟悉的x86平台下,我们最多只会遇到编译时警告,但是在某些情况下在平台上,空指针不是全零地址,这是一个问题。最后,祝大家好运。