A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

本帖最后由 Ammar 于 2015-3-24 10:40 编辑

OC 中在进行了 类的声明和实现后,在main()中也创建了OC对象,如果需要修改成员变量,需要定义一个指针指向类的对象,代码如下:
假如是人类(属性:年龄age、体重weight) 行为:(走walk)
  1. Peason *p = [Peason new];
复制代码
这时,p是一个指针变量,p中存储的是Peason对象的地址,p本身也在内存中有地址。
这时修改成员属性的时候就可以用p->age或者p->weight来操作了。假如进行如下操作:
  1. Peason *p2 = p;
复制代码
依据老师的说法,p2中也存储了p中存储Peason对象的地址,通过 p2->age =20;也可以修改同一个对象中得成员变量,那么问题来了:
我们学过C中得指针我们都知道,在定义一个指针变量的时候:int a = 10; int *p = &a; 是将a的地址储存到p中,然后int **p2 = &p;就可以定义一个指向指针p的指针。而 int *p3 = p;是说p3内也存储a的地址咯,好吧我懂了  谢谢大家;
也就是说想要定义一个指向 指向Peason类对象的指针  的指针必须这样写:Peason **p3 = &p;  而Peason *p2 = p;是将p内部的对象地址赋值给p2。p3才是指向p的指针。



0 个回复

您需要登录后才可以回帖 登录 | 加入黑马