#import <Foundation/Foundation.h> @interface Person : NSObject { @public int age; double height; } - (void)print; @end
void test1(int newAge, double newHeight); void test2(Person *newP); void test3(Person *newP); void test4(Person *newP);
int main() { Person *p = [Person new]; p->age = 10; p->height = 1.5f;
test1(p->age, p->height); [p print];//10 1.5
test2(p); [p print];//20 1.7
test3(p); [p print];//10 1.5
test4(p); [p print];//60 1.9
return 0; }
@implementation Person - (void)print { NSLog(@"年龄=%d,身高=%f", age, height); } @end
void test1(int newAge, double newHeight) { newAge = 10; newHeight = 1.6; }
void test2(Person *newP) { newP->age = 20; newP->height = 1.7; }
void test3(Person *newP) { Person *p2 = [Person new]; p2->age = 40; p2->height = 1.8; newP = p2;
newP->age = 30; }
void test4(Person *newP) { Person *p2 = newP; p2->age = 50; p2->height = 1.9; newP->age = 60; }
如上 main函数旁边的注释是我做出来的答案 ,1,2,4三个的输出和老师的答案是一致的,但是第3个答案是20 1.7 。怎么看也想不明白,求懂的解释一下?还是老师给的答案是错误的?
|