编码时我偶然发现了以下代码。我想知道它是如何在没有警告的情况下编译的?
NSString *str = 0
记录它会返回(null)
,因此它不会按字面意思设置字符串。为什么这样做?
答案 0 :(得分:2)
使用这一行,你将零值赋给一个指针,这只是一个定义空指针的约定,它不会寻址到任何内存。
这里(Why is address zero used for the null pointer?)你讨论了为什么零是c中的空指针约定。
答案 1 :(得分:1)
在C中,通过扩展,Objective-C,0
相当于NULL
和nil
以及Nil
。它是一个整数,但它可以自由地分配给任何指针类型。