0

所以我正在使用 Xcode 编写一些小型的 Objective-C 应用程序,并且我有这行代码:

  int * foo;
    foo = 5;
    NSLog(@"does it work... %i", foo);

现在它编译并运行得很好,但我想知道,为什么它会给我警告,“与指针分配不兼容的整数......”?我认为上面的代码告诉它将 foo 指向的任何内容设置为 5,而不是将指针本身设置为 5。有人可以帮我解决这个问题吗?

4

1 回答 1

4

这段代码的工作是偶然的:int指针恰好有足够的空间来保存一个整数值,并将NSLog指针重新解释为整数,但程序仍然不正确。

应该为指向的指针int分配一个整数变量的地址,如下所示:

int *foo;
int var;
foo = &var;

现在您可以通过指针分配变量:

*foo = 5;

您还可以通过指针或变量读取值:

NSLog(@"%d %d", *foo, var);
于 2012-07-21T03:58:38.987 回答