2012-07-21 29 views
0

所以我使用Xcode中寫了一些微小的Objective-C的應用程序和我的代碼行:指向int轉換編譯器的麻煩?

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

現在,編譯和運行得很好,但我想知道,爲什麼它給我警告「不兼容指針分配的整數...」?我認爲上面的代碼告訴它設置任何指向5的指針,而不是將指針設置爲5.任何人都可以幫我解決這個問題嗎?

回答

4

這段代碼意外發生:int指針碰巧有足夠的空間來保存一個整數值,並且NSLog重新解釋指針爲一個整數,但程序仍然不正確。

一個指向int應指定一個整數變量的地址,如:

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

現在,你可以通過指針賦給變量:

*foo = 5; 

您還可以閱讀通過指針或通過變量的值:

NSLog(@"%d %d", *foo, var);