iOS int类型默认值问题

标签 ios c

我的代码中有一个 int 变量的有趣问题,每次调用它时都会简单地声明该变量并增加 1。据我所知,当我们调用一个方法时,计算机将框架与此放在一起堆栈中的调用及其局部变量(可访问且适合访问)。但在实践中出现了一些问题。我得到一个整数 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);
}

最佳答案

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

关于iOS int类型默认值问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25952674/

相关文章:

React Native 中的 iOS TextInput 样式

ios - UITableViewCell 自定义类和 UITableView 滚动问题

c - 能被 n 整除的最小正整数

ios - UIImageView 设置HighlightedImage : does it have to be on main thread?

ios - 选择文本字段时 UISearchBar 会更改背景

ios - 实例化 Realm 对象时出现 EXC_BAD_INSTRUCTION

c++ - OpenMP性能

python - Gdb python 脚本: No symbol in current contex - even if symbol is there

处理器速度的C程序

c - 如何在 Mac OSx 上处理来自外部程序的数据