黑马程序员技术交流社区
标题:
关于OC中定义指向类型的指针的一点小问题
[打印本页]
作者:
Ammar
时间:
2015-3-24 10:37
标题:
关于OC中定义指向类型的指针的一点小问题
本帖最后由 Ammar 于 2015-3-24 10:40 编辑
OC 中在进行了 类的声明和实现后,在main()中也创建了OC对象,如果需要修改成员变量,需要定义一个指针指向类的对象,代码如下:
假如是人类(属性:年龄age、体重weight) 行为:(走walk)
Peason *p = [Peason new];
复制代码
这时,p是一个指针变量,p中存储的是Peason对象的地址,p本身也在内存中有地址。
这时修改成员属性的时候就可以用p->age或者p->weight来操作了。假如进行如下操作:
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的指针。
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2