在很多c代码片段中,我看到(void *)0 ,使用指针转换整数是什么意思?
答案 0 :(得分:2)
通常,将整数强制转换为指针“意味着”创建指向内存中精确数字地址的指针值。但是我在这里引用了“手段”这个词,因为实际意义更复杂。
基本上有三个子类。
void *
),则这是空指针常量。根据定义,它是一个语法结构,可以获得空指针值。根据定义,空指针无处指向(它“与指向任何实际对象的指针不相等”)。在回答你对Jonathan Leffler的评论时,NULL
实际上并不是一个关键字,而是一个预处理器宏,它扩展为(void *)0
或者可能是0
。 (如果没有强制转换,普通0
可以正常工作,因为空指针常量是一个引人入胜但经常被误解的副问题,我不打算在这里讨论。请参阅{{ 3}} section 5如果好奇的话。)