首页 > 代码库 > C/C++的数组名
C/C++的数组名
数组名相当于指向数组第一个元素的地址。
数组名不是变量,是地址常量,不能为其赋值。
如下:
1)一维数组中
对于数组 a[5] = {1, 2, 3, 4, 5};
数组名a相当于指向第一个元素a[0]的指针。即 a 与 &a[0] 等价。
2)二维数组中
int a[2][3] = {1, 2, 3, 4, 5, 6};
int __; // 完成对p的定义
p = a;
分析 p = a;
a 相当于指向a[2][3] 的“第一个元素”的地址
所谓“第一个元素”是指第一个“包含3个int型元素的一维数组”
所以a 相当于一个“包含3个int型元素的一维数组”的地址
因此p的基类型应该是:”包含3个int型元素的一维数组“
定义一个指向“包含3个int 型元素的一维数组”的指针变量:
int (*p)[3];
注意:
int *p = &a[0];
a++是没有意义的,但p++会引起p的变化
p可以指向数组最后一个元素以后的元素
指针做加减运算时一定注意有效的范围。
如
int a[5];
int *p = &a[0];
p--;
*p = 6; // damage
C/C++的数组名
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。