1

通过一些关于修改 CGImageRef 数据的文档,我遇到了一个奇怪的例子——它与这个伪代码类似:

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

这让我很纳闷!if (data != NULL)布尔运算和布尔运算有什么区别if (data)

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

4

1 回答 1

5

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

于 2012-04-04T06:17:05.073 回答