利用指向该数组的指针存放的值与指向该数组首元素的指针存放的值是相等的,即数组的首地址就是数组首元素的首地址,但是这个数组变量的值等于数组首元素的首地址,为什么数组变量的值要等于数组首元素的地址,目的是方便提取数组元素的数据。(a[i]=*(a+i))
#include <iostream>
using namespace std;
int main()
{
cout<<"得到数组最后一个数的趣味实现方案一:"<<endl;
const int num=5;
int a[num]={1,5,2,6,4};
int* p=(int*)(&a); //&a指向数组a, p指向数组首元素
cout<<p[num-1]<<endl; //为4
cout<<*(p+num-1)<<endl; //为4
return 0;
}
#include <iostream>
using namespace std;
int main()
{
cout<<"得到数组最后一个数的趣味实现方案一:"<<endl;
const int num=5;
int a[num]={1,5,2,6,4};
int* p=(int*)(&a+1); //&a+1指向地址为(&a+1)的int[5]的数组,p指向数组最后一数的下一个位置
cout<<p[-1]<<endl; //为4
cout<<*(p-1)<<endl; //为4
return 0;
}