首先区别清楚指针数组和数组指针的区别
以名字后面的两个字定性:
1.指针数组是一个数组,存贮着指针类型的变量,例如:
int *a[10];
因为[]的优先级大于*,故首先是一个含有10个元素的数组,数组中的元素是指向int类型的指针;
2.数组指针是一个指针,指向的对象是一个数组,例如:
int (*a)[10];
因为()的优先级大于[],故先确定a是一个指针,指向的数据类型是一个含有10个int型数据的数组。
3.指向一维数组中的指针
首先我们先看一个一维数组:
int a[3]={1,2,3};//a是一个数组的名称
cout<<*a<<endl;//对a进行解引用,结果就是数组中第一个元素的值
cout<<a<<endl;//a是数组第一个元素的地址
cout<<a[0]<<endl;//a[0]代表第一个元素
cout<<&a<<endl;//&a是代表取整个数组的地址,整个数组的地址和第一个元素的地址是一样的
cout<<&a[0]<<endl;//对第一个元素取地址
输出如下:
1
0x7ffcf78f5680
1
0x7ffcf78f