关于数组名的理解 以及A与&A A+1 与 &A+1、int &c=A[0] 与c++、*(&c+1)的关系说明

本文深入探讨了数组名作为指针常量的概念,解释了数组名实际上代表的是数组首地址,且不可更改。通过C++代码示例,详细说明了如何通过引用变量访问数组元素,以及数组地址运算的细节。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

数组名不是正常变量可以理解为指针常量(即无法存放其他常量的变量)其名字代表首地址,即找到这段连续存储空间的地址,值不能变,(若地址变了 意味这这段空间再是这段连续空间,即不是原本的空间 理解起来十分抽象
可以理解为数组,你声明一个数组,系统就分配了一个连续内存单元,而A就是这个内存单元首地址本身的值,而不是存储空间的名字)

#include
using namespace std;
int main()
{
int A[10]={1,23,3,4,5,6,7,8,9,10};
int &c=A[0]; //引用变量类型不能用A代替
cout<<"&c:"<<&c<<endl;//引用A[0]的地址
cout<<“c:”<<c<<endl;
c++;//在A[0]这个地址空间中进行加一操作
cout<<"&c:"<<&c<<endl;
cout<<“c:”<<c<<endl;
cout<<"&c+1:"<<&c+1<<endl;//首地址+1是连续下的下一个整型变量地址(a[1])
cout<<"&c+1:"<<*(&c+1)<<endl;
cout<<“A:”<<A<<endl;//数组名数组的首地址
cout<<"&A:"<<&A<<endl;//它的地址是数组的地址
A+1;
cout<<"&A+1:"<<&A+1<<endl;//数组地址+1是连续存储空间的下一个地址
cout<<“A+1:”<<A+1<<endl;//首地址+1是连续下的下一个整型变量地址(a[1])
cout<<"&A[0]+1:"<<&A[0]+1<<endl;//首地址+1是连续下的下一个整型变量地址(a[1])
return 0;
}
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值