|  | 
 
| 
这两个名字不同当然所代表的意思也就不同。我刚开始看到这就吓到了,主要是中文太博大精深了,整这样的简称太专业了,把人都绕晕了。从英文解释或中文全称看就比较容易理解。
x
马上注册,结交更多好友,享用更多功能^_^您需要 登录 才可以下载或查看,没有账号?立即注册  指针数组:array of pointers,即用于存储指针的数组,也就是数组元素都是指针
 数组指针:a pointer to an array,即指向数组的指针
 还要注意的是他们用法的区别,下面举例说明。
 int* a[4]     指针数组
 表示:数组a中的元素都为int型指针
 元素表示:*a[i]   *(a[i])是一样的,因为[]优先级高于*
 int (*a)[4]   数组指针
 表示:指向数组a的指针
 元素表示:(*a)[i]
 注意:在实际应用中,对于指针数组,我们经常这样使用:
 1
 2
 typedef int* pInt;
 pInt a[4];
 这跟上面指针数组定义所表达的意思是一样的,只不过采取了类型变换。
 代码演示如下:
 1
 2
 3
 4
 5
 6
 7
 8
 9
 10
 11
 12
 13
 14
 15
 16
 17
 18
 19
 20
 #include <iostream>
 
 using namespace std;
 
 int main()
 {
 int c[4]={1,2,3,4};
 int *a[4]; //指针数组
 int (*b)[4]; //数组指针
 b=&c;
 //将数组c中元素赋给数组a
 for(int i=0;i<4;i++)
 {
 a[i]=&c[i];
 }
 //输出看下结果
 cout<<*a[1]<<endl; //输出2就对
 cout<<(*b)[2]<<endl; //输出3就对
 return 0;
 }
 
 | 
 |