通过一些关于修改CGImageRef数据的文档,我遇到了一个奇怪的例子 - 它有点像这个伪代码:
void *data = Allocate space for data;
if (data != NULL) Manipulate data;
if (data) Free data;
这让我感到疑惑!布尔运算if (data != NULL)
和布尔运算if (data)
之间有什么区别。
更具体地说,指针在被视为布尔值时如何在Objective C中表现?试图谷歌这个,我只发现了无数与指针 - 到 -booleans有关的问题,而不是指针被评估为为布尔值。
答案 0 :(得分:5)
他们完全一样。任何类型的非零值在C中被解释为“真”,并且在Objective-C中被解释为“true”。 C甚至都没有布尔类型。