黑马程序员技术交流社区

标题: 数组问题 [打印本页]

作者: 董帅军    时间: 2014-11-15 07:55
标题: 数组问题
比喻定义一个数组 int a[]定义一个指针 int *a1 a和a1有什么区别啊
作者: 736010695    时间: 2014-11-15 09:21
  个人愚见:数组a里面存放的是某一个类型的若干个变量;指针里储存的是它指向的变量的地址,指针就一个作用,储存变量地址,然后通过地址进入变量内存空间,可以对其进行修改...
作者: zhaihaohk    时间: 2014-11-15 10:49
1.数组的名即数组的首地址,这个首地址是不可以更改的,楼主的a 是不可变的,可以理解为一个常量,不存在++ --赋值等操作,访问数组元素中的值只能通过数组下表进行。
2.指针变量al 存储的是字符串地址,既然本质为变量,当然可以进行一系列运算和赋值操作,更改al的值即指针的地址偏移即可访问字符串变量。
作者: supergcs    时间: 2014-11-15 11:33
a是数组名 数组名既是数组地址(也是数组首元素地址,不懂请看数组在内存中的存储方式),所以a表示的是数组地址
而a1只是定义了一个指向int类型的指针变量
你可以这样将两者结合
  1. int a[] = {6,5,4,3,2,1};
  2. int *a1 = a;
复制代码

作者: 冰点    时间: 2014-11-15 14:07
a1中存放的是一个int型数据的地址;而a是一个数组,里面的每个数据都是int类型的;
作者: 冰点    时间: 2014-11-15 14:08
a1中存放的是一个int型数据的地址;而a是一个数组,里面的每个数据都是int类型的;一个是地址,一个是 数据




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