a:是数组的首地址即&a[0]
&a:以整个数组为单位取其地址
a+1是a+sizeof(a[0])
&a+1是a+sizeof(a)
实例讲解:
#include<iostream>
#include <typeinfo>
using namespace std;
void main()
{
int a[6]={1,2,3,4,5,6};
int *q;
int (*p)[6];
cout<<" a type="<<typeid(a).name()<<endl;
cout<<" &a type="<<typeid(&a).name()<<endl;
cout<<"a="<<a<<endl;
cout<<"&a="<<&a<<endl<<endl;
}
输出结果
a type=int *
&a type=int (*)[6]
a=0012FF68
&a=0012FF68