如何理解空指针的使用

如何理解空指针的使用

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