char指针零是什么意思?

时间:2014-07-08 22:19:21

标签: c pointers

从字面上看,(char *) 0是否指向包含零的某个位置的指针?系统是否为每个此类声明创建一个值为0的地址?

3 个答案:

答案 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