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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© IOS小菜鸟 中级黑马   /  2014-10-21 18:50  /  1200 人查看  /  4 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

int a[] = {1,2,3};这里面的数组名a是一个变量吗?系统给他分配了内存吗

4 个回复

倒序浏览
数组名不是变量。系统只给数组分配内存空间,不会给数组名分配存储空间。
int a[] = {1,2,3};
这里应该只是系统分配了3个int长度(12字节)的存储空间给数组。

点评

不给数组名分配空间?使用a的时候去哪儿找? a这个数组名也是有分配一个指针大小的空间, 这里面保存的是连续3个int类型的空间的起始地址。  发表于 2014-10-22 00:48
回复 使用道具 举报
弹琴骚年 发表于 2014-10-21 21:42
数组名不是变量。系统只给数组分配内存空间,不会给数组名分配存储空间。
int a[] = {1,2,3};
这里应该只是 ...

这里int a[]中的a是当指针变量存了,还是当基本类型变量?
回复 使用道具 举报
a相当于只想数组首地址的指针,不过a是常量指针,意思就是我们不能更改a的值,当我们想访问a的第一个元素时就可以用*a,后者a[0],第二个元素:*(a+1),或者a[1]
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马