从字面上看,(char *) 0
是否指向包含零的某个位置的指针?系统是否为每个此类声明创建一个值为0的地址?
答案 0 :(得分:5)
不,它是0
的强制转换,可以输入char *
。也就是说,空指针。任何指针上下文中的0
都是指空指针常量。
究竟指向什么<无效 - 解除引用会导致未定义的行为。
有关详情,请查看C FAQ Part 5: Null Pointers。
答案 1 :(得分:3)
类型为char *
的空指针值。
来自C ++标准
空指针常量可以转换为指针类型;结果 是该类型的空指针值
来自C标准
3一个整数常量表达式,其值为0,或者是这样的 表达式转换为void *类型,称为空指针常量.66) 如果将空指针常量转换为指针类型,则 结果指针,称为空指针,保证比较 不等于指向任何对象或函数的指针。
4将空指针转换为另一个指针类型会产生 null 该类型的指针。任何两个空指针都应该相等。
它不是指向包含0的locarion的指针。因此系统不会创建任何内容。由于它是在C标准中编写的,因此空指针“保证与指向任何对象或函数的指针不相等”。因此它用于确定指针是否指向某个对象或函数。
答案 2 :(得分:0)
它是一个空指针的显式转换。我相信它有一个#define宏,允许你只写NULL