Objective-C指针作为布尔值

时间:2012-04-04 06:13:54

标签: objective-c pointers boolean evaluation

通过一些关于修改CGImageRef数据的文档,我遇到了一个奇怪的例子 - 它有点像这个伪代码:

void *data = Allocate space for data;
if (data != NULL) Manipulate data;
if (data) Free data;

这让我感到疑惑!布尔运算if (data != NULL)和布尔运算if (data)之间有什么区别。

更具体地说,指针在被视为布尔值时如何在Objective C中表现?试图谷歌这个,我只发现了无数与指针 - -booleans有关的问题,而不是指针被评估为布尔值。

1 个答案:

答案 0 :(得分:5)

他们完全一样。任何类型的非零值在C中被解释为“真”,并且在Objective-C中被解释为“true”。 C甚至都没有布尔类型。