AnT*_*AnT 112
空指针是指针的特殊保留值.任何类型的指针都有这样的保留值.在形式上,每个特定的指针类型(int *
,char *
等)具有其自身专用的空指针值.从概念上讲,当指针具有该空值时,它不指向任何位置.
Void指针是一种特定的指针类型 - void *
指向存储器中某些数据位置的指针,它没有任何特定类型.
所以,再一次,空指针是一个值,而void指针是一个类型.这些概念完全不同,不具有可比性.这实际上意味着你所提出的问题并不完全有效.例如,问问题是"三角形和汽车之间有什么区别?".
van*_*nza 11
它们是两个不同的概念:"void指针"是一种类型(void*)."空指针"是一个值为零(NULL)的指针.例:
void *pointer = NULL;
Run Code Online (Sandbox Code Playgroud)
这是一个NULL void指针.
保证空指针不等于任何对象的指针。它的实际值取决于系统,并且可能因类型而异。要获得空int
指针,您可以这样做
int* p = 0;
Run Code Online (Sandbox Code Playgroud)
malloc
失败时将返回空指针。
我们可以简单地通过测试其布尔值来测试指针是否为空,即是否malloc
或其他函数失败:
if (p) {
/* Pointer is not null */
} else {
/* Pointer is null */
}
Run Code Online (Sandbox Code Playgroud)
void 指针可以指向任何类型,并且由您来处理引用的对象为了取消引用和指针运算而消耗多少内存。
归档时间: |
|
查看次数: |
140953 次 |
最近记录: |