黑马程序员技术交流社区

标题: 求告知 指针数组 和 数组指针 的本质区别? [打印本页]

作者: dazayn    时间: 2016-3-31 06:50
标题: 求告知 指针数组 和 数组指针 的本质区别?
看了好久2句话  还是不太明白 其中的本质区别 求告知
作者: muzipiao    时间: 2016-3-31 09:24
指针数组 和 数组指针 的本质区别
例如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]);
复制代码

作者: tdwydan1    时间: 2016-3-31 21:15
两个的本质就是,第一个是数组,这个数组里存的是一个个指针元素;第二个是指针,这个指针里存的元素是数组,这个元素的类型是数组类型的
作者: Sniper-L    时间: 2016-4-1 01:00
一个存放指针的数组   一个是指针指向数组也就是数组的地址




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2