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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 董帅军 中级黑马   /  2014-11-15 07:55  /  1062 人查看  /  5 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

比喻定义一个数组 int a[]定义一个指针 int *a1 a和a1有什么区别啊

5 个回复

倒序浏览
  个人愚见:数组a里面存放的是某一个类型的若干个变量;指针里储存的是它指向的变量的地址,指针就一个作用,储存变量地址,然后通过地址进入变量内存空间,可以对其进行修改...
回复 使用道具 举报
1.数组的名即数组的首地址,这个首地址是不可以更改的,楼主的a 是不可变的,可以理解为一个常量,不存在++ --赋值等操作,访问数组元素中的值只能通过数组下表进行。
2.指针变量al 存储的是字符串地址,既然本质为变量,当然可以进行一系列运算和赋值操作,更改al的值即指针的地址偏移即可访问字符串变量。
回复 使用道具 举报
a是数组名 数组名既是数组地址(也是数组首元素地址,不懂请看数组在内存中的存储方式),所以a表示的是数组地址
而a1只是定义了一个指向int类型的指针变量
你可以这样将两者结合
  1. int a[] = {6,5,4,3,2,1};
  2. int *a1 = a;
复制代码
回复 使用道具 举报
a1中存放的是一个int型数据的地址;而a是一个数组,里面的每个数据都是int类型的;
回复 使用道具 举报
a1中存放的是一个int型数据的地址;而a是一个数组,里面的每个数据都是int类型的;一个是地址,一个是 数据
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马