如果 NULL 和 0 作为空指针常数是等价的,那我到底该用哪一个呢?

来源:学生作业帮助网 编辑:作业帮 时间:2024/10/08 19:34:05
如果 NULL 和 0 作为空指针常数是等价的,那我到底该用哪一个呢?
xώP_.!^"fhܸQkDa?hBhB˜soRf۞;|7BL4vUpG8Q*ȹDߒ*lr)\|VVt|ːm΁ϱu,}Q|L53n!K\6d>3?k:xXѷȞFZ1^6p;z>eҼq#5j+ѵN;$ty) qЌP/'0BʤYGGV)[-dc~х8, +"-qBtX*hyVI'(dһ ΰvFmO H|o 59h| =-nU𾉂PqvrveX*K.jC)!UrcݛI,FAH=DШEU;߷NΟg.z)@5 ^tTz _6T9o3#?!

如果 NULL 和 0 作为空指针常数是等价的,那我到底该用哪一个呢?
如果 NULL 和 0 作为空指针常数是等价的,那我到底该用哪一个呢?

如果 NULL 和 0 作为空指针常数是等价的,那我到底该用哪一个呢?
在指针上下文中 NULL 和 0 是完全等价的, 而未加修饰的 0 也完全可以接受.任何使用 NULL (跟 0 相对) 的地方都应该看作一种温和的提示, 是在使用指针; 程序员 (和编译器都) 不能依靠它来区别指针 0 和整数 0.
在需要其它类型的 0 的时候, 即便它可能工作也不能使用 NULL, 因为这样做发出了错误的格式信息.(而且, ANSI 允许把 NULL 定义为 ((void *)0), 这在非指针的上下文中完全无效.特别是, 不能在需要 ASCII 空字符 (NUL) 的地方用 NULL.如果有必要, 提供你自己的定义