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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

看了好久2句话  还是不太明白 其中的本质区别 求告知

3 个回复

正序浏览
一个存放指针的数组   一个是指针指向数组也就是数组的地址
回复 使用道具 举报
两个的本质就是,第一个是数组,这个数组里存的是一个个指针元素;第二个是指针,这个指针里存的元素是数组,这个元素的类型是数组类型的
回复 使用道具 举报
指针数组 和 数组指针 的本质区别
例如NSArray *arr=[NSArray array];   //这是定义一个数组,那么arr就是数组指针,代表数组的地址;
很明显的特征,*x,凡是用*号访问的,肯定都是地址,这里也不例外,只不过arr是数组的指针。

指针数组,代表存储一组指针的数组。
上大学学C语言时,老师的一句话就让我明白什么是指针了----》【指针就是地址】
所以这里,指针数组,存储的是指针,也就是地址
例如:
  1.         //定义三个字符串对象,其中string1,string2,string3就是字符1,2,3的地址,也就是他们的指针
  2.         NSString *string1=@"字符1";
  3.         NSString *string2=@"字符2";
  4.         NSString *string3=@"字符3";
  5.         //定义一个数组,把他们保存到里面,则存储的是地址,也就是指针,所以是指针数组
  6.         NSArray *arr1=[NSArray arrayWithObjects:string1,string2,string3, nil];
  7.         //不是对象的,是基本数据类型的也可以
  8.         int a=1;
  9.         int b=2;
  10.         //定义一个数组保存a,b的指针,也就是地址,那这里就是一个指针数组
  11.         NSArray *arr2=[NSArray arrayWithObjects:&a,&b, nil];
  12.         //由于取出的值是指针,所以想要打印a,b的值,需要用*号访问
  13.         NSLog(@"a=%d,b=%d",*arr2[0],*arr2[1]);
复制代码
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马