这句话严格来说对么?还是指针指向的那块地址才是ObjC中所谓的对象? |
|
10分 |
事实上,指针指向的那块地址才是ObjC中所谓的对象。如有一个student 类,我们创建了一个stu的指针变量,它指向了Student对象的地址。
Student *stu = [[Student alloc] init]; 假设Student对象的地址为0xff43,指针变量stu的地址为0xee45,stu中存储的是Student对象的地址0xff43。即指针变量stu指向了这个Student对象。 |
5分 |
我接着楼上的话说,所谓这句代码:
Student *stu = [[Student alloc] init]; 是在栈中创建一个名中stu的指针,指向堆中Student对象,有没有想过我们在释放一个对象之后,指针(还是指在堆中的内存上)还要指向NULL |
5分 |
Student对象被销毁了,地址为0xff43的内存就变成了”垃圾内存”,然而,指针变量stu仍然指向这一块内存,这时候,stu就称为了“野指针” |