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

数组名不是正常变量可以理解为指针常量(即无法存放其他常量的变量)其名字代表首地址,即找到这段连续存储空间的地址,值不能变,(若地址变了 意味这这段空间再是这段连续空间,即不是原本的空间 理解起来十分抽象
可以理解为数组,你声明一个数组,系统就分配了一个连续内存单元,而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<//引用A[0]的地址
cout<<“c:”< c++;//在A[0]这个地址空间中进行加一操作
cout<<"&c:"<<&c< cout<<“c:”< cout<<"&c+1:"<<&c+1<//首地址+1是连续下的下一个整型变量地址(a[1])
cout<<"&c+1:"<<*(&c+1)< cout<<“A:”<//数组名数组的首地址
cout<<"&A:"<<&A<//它的地址是数组的地址
A+1;
cout<<"&A+1:"<<&A+1<//数组地址+1是连续存储空间的下一个地址
cout<<“A+1:”<//首地址+1是连续下的下一个整型变量地址(a[1])
cout<<"&A[0]+1:"<<&A[0]+1<//首地址+1是连续下的下一个整型变量地址(a[1])
return 0;
}
关于数组名的理解 以及A与&A A+1 与 &A+1、int &c=A[0] 与c++、*(&c+1)的关系说明_第1张图片

你可能感兴趣的:(c)