所以我正在使用Xcode编写一些小的Objective-C应用程序,我有一行代码:
int * foo;
foo = 5;
NSLog(@"does it work... %i", foo);
现在它编译并运行得很好,但我想知道,为什么它会给我警告,“指针分配不兼容整数......”?我认为上面的代码告诉它设置foo指向5的任何内容,而不是将指针本身设置为5.任何人都可以帮我解决这个问题吗?
答案 0 :(得分:4)
这段代码是偶然的:int
指针碰巧有足够的空间来容纳整数值,而NSLog
将指针重新解释为整数,但程序仍然不正确。 / p>
应该为int
指针指定一个整数变量的地址,如下所示:
int *foo;
int var;
foo = &var;
现在您可以通过指针分配变量:
*foo = 5;
您还可以通过指针或变量读取值:
NSLog(@"%d %d", *foo, var);