#import <Foundation/Foundation.h>
BOOL areIntsDifferent(int thing1, int thing2) {
if (thing1 == thing2) {
return (NO);
} else {
return (YES);
}
}
NSString *boolString (BOOL yesNo) {
if (yesNo == NO) {
return(@"NO");
} else {
return(@"YES");
}
}
int main (int argc, const char * argv[]) {
BOOL areTheyDifferent;
areTheyDifferent = areIntsDifferent (5,5);
NSLog(@"are %d and %d different? %@", 5, 5, boolString(areTheyDifferent));
areTheyDifferent = areIntsDifferent (23,42);
NSLog(@"are %d and %d different? %@", 23, 42, boolString(areTheyDifferent));
return (0);
}
這是整個程序。這不是非常複雜,但它說明了我經常遇到的一個常見問題 - 理解指針。在這種情況下,boolString函數的返回值是一個指針,因爲沒有分配內存來存放一個字符串?如果是這樣,爲什麼不是areInts不同的返回值指向BOOL值的指針?我可以重寫這個程序,以便boolString的返回值是一個字符串,而不是一個指向字符串的指針嗎?如果是這樣,如何?我試圖消除*,但然後我得到一個編譯器錯誤。基本Objective-C指針問題
http://stackoverflow.com/questions/3951484/basic-objective-c-pointer-question重複? – 2010-10-17 01:01:49
@Joe另外一個人得到了最近的投票,但感謝你指出了它。 :) – 2010-10-17 01:20:02