數組指針和指針數組
阿新 • • 發佈:2018-05-04
存儲 數組指針 hive 分別是 二維數組 指針 www http TP
數組指針(也稱為行指針)
定義:int (*p)[n];
註釋:()優先級高,首先說明p是一個指針,指向一個整型的一維數組,一維數組的長度是n,也可以說是p的步長。也就是說執行p+1時,p要跨越n個整型數據長度。
舉例說明:
int a[3][4];
int (*p)[4];
p=a;//將二維數組的首地址賦給p,也就是a[0]或&a[0][0]
p++;//該語句執行後,p=p+1;p跨過a[0][]指向a[1][]
因此,指向數組的指針也稱指向一維數組的指針,亦稱為行指針。
指針數組
定義:int *p[n];
註釋:[]優先級高,先與p結合組成一個數組,再由int*說明這是一個指針數組,它是有n個指針類型的數組元素。這裏執行p+1時,則p指向下一個數組元素,p=a的賦值是錯誤的,因為p是不可表示,只存在p[0],p[1],....,p[n],而它們分別是指針變量可用於存放變量的地址。但可這樣表示*p=a,*p表示指針數組的第一個元素的值,a的首地址。
舉例說明:
int *p[3];
int a[3][4];
for(int i=0;i<3;i++)
p[i]=a[i];//int *p[3]表示一個一維數組內存放三個指針變量,分別是p[0],p[1],p[2],所以要分別賦值。
數組指針和指針數組的區別
數組指針只是一個指針變量,類似於一個二維數組,它占有內存中一個指針的存儲空間。
指針數組是一個數組,包含多個指針變量,以數組的形式存在內在中,占有多個指針存儲空間。
http://www.cnblogs.com/hongcha717/archive/2010/10/24/1859780.html
數組指針和指針數組