//nil 表示空对象
@interface Person:NSObject
{
@public:
int age ;
}
-(void)say:(NSString)words;
@end
@implementation Person
-(void)say:(NSString)words
{
NSLog(@"%@",words);
}
@end
//对象作为函数参数传递是地址传递
//在函数可以通过对象访问它里面成员变量
//也可以对象调用它的对象方法(成员方法)
void changePerson(Person * person)
{
person->age =10;
}
//因为对象是被创建在堆中, 所以可以作为函数的返回值。
//局部变量不可以作为函数的返回值,它存储在栈中,离开函数就会被销毁
Person *createPerson()
{
return [Person new];
}
int main(int argc,char *argv[])
{
Person*p = [Person new];
p->age =1;
changePerson(p);
NSSlog(@"%d",p->age);
Person *p1 = changePerson();
p1->age = 100;
NSSlog(@"%d",p1->age);
return 0;
}