在OC中,单指针,指向对象的内存地址,但我们必须明确一点,指针也是有内存地址的。
//首先创建People类,做如下输出,查看单指针输出的地址:
People * a=[People alloc];
NSLog(@"单指针,输出对象内存地址%@",a);
//如下 首先创建nil指针
People * b=nil;
NSLog(@"调用方法前%@",b);
//双指针需要传指针的内存地址,&b取b得内存地址
[self test:&b];
NSLog(@"取b的内存地址:%p",b);
//创建包含双指针参数的方法
-(void)test:(People **)aPeople
{
///取*aPeople得内容
*aPeople=[[People alloc]init];
NSLog(@"调用方法中,输出指针的内存地址:%@",*aPeople);
}
运行结果如下图所示:
在此为何要解说单指针与双指针的区别呢?因为:单指针通过方法为指针赋值,会出现赋值为空的问题,因为内部会把指针copy一份,所以要想在方法里面为指针赋值,可以使用双指针来解决。