Objective c 指向int转换编译器的指针有问题吗?
因此,我正在使用Xcode编写一些小型Objective-C应用程序,我有一行代码:Objective c 指向int转换编译器的指针有问题吗?,objective-c,pointers,type-conversion,declaration,Objective C,Pointers,Type Conversion,Declaration,因此,我正在使用Xcode编写一些小型Objective-C应用程序,我有一行代码: int * foo; foo = 5; NSLog(@"does it work... %i", foo); 现在它的编译和运行都很好,但我想知道,为什么它会给我一个警告,“不兼容的整数到指针赋值…”?我认为上面的代码告诉它将foo指向的任何对象设置为5,而不是将指针本身设置为5。有人能帮我解决这个问题吗?这段代码是偶然工作的:int指针恰好有足够的空间来容纳一个整数值,NSLog将指针重
int * foo;
foo = 5;
NSLog(@"does it work... %i", foo);
现在它的编译和运行都很好,但我想知道,为什么它会给我一个警告,“不兼容的整数到指针赋值…”?我认为上面的代码告诉它将foo指向的任何对象设置为5,而不是将指针本身设置为5。有人能帮我解决这个问题吗?这段代码是偶然工作的:
int
指针恰好有足够的空间来容纳一个整数值,NSLog
将指针重新解释为一个整数,但程序仍然不正确
指向int
的指针应分配一个整数变量的地址,如下所示:
int *foo;
int var;
foo = &var;
现在,您可以通过指针分配变量:
*foo = 5;
也可以通过指针或变量读取值:
NSLog(@"%d %d", *foo, var);
这段代码的工作是偶然的:
int
指针恰好有足够的空间来容纳整数值,NSLog
将指针重新解释为整数,但程序仍然不正确
指向int
的指针应分配一个整数变量的地址,如下所示:
int *foo;
int var;
foo = &var;
现在,您可以通过指针分配变量:
*foo = 5;
也可以通过指针或变量读取值:
NSLog(@"%d %d", *foo, var);