數組指針域指針數組

這兩個名字不同當然所代表的意思也就不同。我剛開始看到這就嚇到了,主要是中文太博大精深了,整這樣的簡稱太專業了,把人都繞暈了。從英文解釋或中文全稱看就比較容易理解

指針數組:array of pointers,即用於存儲指針的數組,也就是數組元素都是指

數組指針:a pointer to an array,即指向數組的指針

還要注意的是他們用法的區別,下面舉例說明。

int* a[4]     指針數組     

                表示:數組a中的元素都爲int型指針    

                元素表示:*a[i]   *(a[i])是一樣的,因爲[]優先級高於*

int (*a)[4]   數組指針     

                表示:指向數組a的指

                元素表示:(*a)[i]  

注意:在實際應用中,對於指針數組,我們經常這樣使用:

typedef int* pInt;

pInt a[4];
#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;
}

原文地址:http://www.cnblogs.com/Romi/archive/2012/01/10/2317898.html
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章