同类型的指针变量之间可以互相赋值的
Person *p1 = [Person new];
Person *p2 = p1; p1和p2的类型都是Person指针类型的,代表将p1的值赋值给p2 儿p1的值是对象地址,所以就把对象的地址赋值给p2,多以p1 和p2 指向同一个对象
无论是通过p1还是p2 去修改对象,修改的都是同一个对象
p2->_name = @"小花"; 小花赋值给p2 的时候,会把堆里面的_name中的小明,修改成小花 这个时候,p1 p2 指向同一个对象
输出结果
#import <Foundation/Foundation.h>
@interface Person : NSObject
{
@public
NSString *_name;
int _age;
}
-(void)sayHI;
@end
@implementation Person
-(void)sayHI
{
NSLog(@"我的名字是%@,今年%d岁",_name,_age);
}
@end
int main(int argc, const char * argv[]) {
@autoreleasepool {
Person *p1 = [Person new];
p1->_name = @"小明";
p1->_age = 18;
Person *p2 = p1;
// 第一个修改
p2->_name = @"小花";
// 第二次修改
// p1->_name = @"老司机";
// p1->_age = 22222;
NSLog(@"p1->_name----%@",p1->_name);
[p2 sayHI];
[p1 sayHI];
}
return 0;
}