4
目标C中的BOOL值始终为NO(默认情况下)。但是最近我遇到了BOOL变量的值返回YES的情况(默认情况下)。有人可以向我解释这一点吗?目标C中Bool的值
目标C中的BOOL值始终为NO(默认情况下)。但是最近我遇到了BOOL变量的值返回YES的情况(默认情况下)。有人可以向我解释这一点吗?目标C中Bool的值
BOOL
没有任何价值,因为它是一种类型。
您可能是指BOOL类型的变量。有不同类型的变量,它有不同的初始化语义:
alloc
承诺,所有实例变量设置为零,这在BOOL的情况下,意味着NO
;如果你声明一个没有初始化的变量,操作系统将随机分配内存,并在该瞬间分配的内存可能包含一些垃圾值。那个垃圾可以表示No也可以是Yes值。
建议:始终使用正确的初始化声明变量以避免代码中的错误。
#3是我要发布的内容! – Wevah 2010-07-12 11:08:53
这是否意味着int a在Objective C中总是不会赋值0? – mindfreak 2010-07-12 11:12:29
@Mindfreak:正好。所有本地(函数作用域)变量都必须被初始化。 – 2010-07-12 11:22:35