#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 указателем, потому что не выделена память для хранения строки?И если так, то почему возвращаемое значение areIntsDifferent не является указателем на значение BOOL?Могу ли я переписать эту программу так, чтобы возвращаемое значение boolString было строкой, а не указателем на строку?Если так, то КАК?Я попытался устранить *, но затем я получил ошибку компилятора.