Objective-C中的int是否自动初始化为0?

use*_*821 0 c int objective-c local-variables variable-initialization

我正在阅读Stephen G. Kochan撰写的一本名为"Objective-C编程"的书,第六版.它在第144页上有以下声明,这使我感到困惑:

作为基本C数据类型的局部变量没有默认初始值,因此在使用它们之前必须将它们设置为某个值.

然而,当我有以下代码时,它仍然有效,并显示0:

#import <Foundation/Foundation.h>

int main(int argc, const char * argv[])
{
    int number;
    NSLog(@"%i", number);

    return 0;
}
Run Code Online (Sandbox Code Playgroud)

是不是int基本的C数据类型?

Lee*_*hem 7

"基本C数据类型没有默认的初始值",并不意味着如果你没有初始化它们就没有值,只是你不会事先知道那个值是什么.

在你的情况下,number恰好碰巧有一个零,但它可能有其他价值.

  • @ user3451821是的,是的. (2认同)