iOS int类型默认值问题

时间:2014-09-20 19:46:17

标签: ios c

我的代码中有一个int变量的一个有趣的问题,它只是在每次调用时声明变量并且增加1.我理解这一点,当我们调用一个方法时,计算机将框架与此一起放置call及其局部变量在堆栈中(可访问且适合访问)。但是在实践中出现了一些错误。我得到一个32754的整数增加1(即32755)。

它远离int的最大值,但无论如何它都不能像我想象的那样工作。不知何故第二次变量未正确初始化(应该是var = 0)。所以我想知道它是如何工作的以及引擎盖下的内容。

我的“错误”代码:

- (IBAction)pressed:(id)sender
{
    int num;
    NSLog(@"Num is %d", num);
    num++;
    NSLog(@"Num is %d", num);
}

工作代码:

- (IBAction)pressed:(id)sender
{
    int num = 0;
    NSLog(@"Num is %d", num);
    num++;
    NSLog(@"Num is %d", num);
}

2 个答案:

答案 0 :(得分:1)

非静态的局部变量未初始化为任何已定义的值,因此您必须初始化该变量

答案 1 :(得分:0)

非静态局部变量未初始化,这就是在这种情况下发生的事情。

静态变量,全局变量和实例变量初始化为0。