C語言學習歷程(十二)陣列指標與指標陣列
指標陣列: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];
這跟上面指標陣列定義所表達的意思是一樣的,只不過採取了型別變換。
程式碼演示如下:
#include <stdio.h>
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];
}
return 0;
}
注意:定義了陣列指標,該指標指向這個陣列的首地址,必須給指標指定一個地址,容易犯的錯得就是,不給b地址,直接用(*b)[i]=c[i]給陣列b中元素賦值,這時陣列指標不知道指向哪裡,除錯時可能沒錯,但執行時肯定出現問題,使用指標時要注意這個問題。但為什麼a就不用給他地址呢,a的元素是指標,實際上for迴圈內已經給陣列a中元素指定地址了。但若在for迴圈內寫*a[i]=c[i],這同樣會出問題。總之一句話,定義了指標一定要知道指標指向哪裡
相關文章
- C語言 指標與陣列C語言指標陣列
- C語言程式設計基礎:指標陣列與陣列指標C語言程式設計指標陣列
- 指標陣列與陣列指標指標陣列
- C語言指標(三):陣列指標和字串指標C語言指標陣列字串
- 陣列指標,指標陣列陣列指標
- 陣列指標 指標陣列陣列指標
- 指標陣列和陣列指標與二維陣列指標陣列
- c語言-運算子,陣列,指標C語言陣列指標
- 陣列指標和指標陣列陣列指標
- C語言雜談:指標與陣列 (上)C語言指標陣列
- C語言雜談:指標與陣列 (下)C語言指標陣列
- C語言雜談:指標與陣列(下)C語言指標陣列
- Golang 學習——陣列指標和指標陣列的區別Golang陣列指標
- C++ 指標陣列與陣列指標的區別C++指標陣列
- C語言指標和陣列基礎C語言指標陣列
- Go 陣列指標(指向陣列的指標)Go陣列指標
- C語言指標和陣列筆試題C語言指標陣列筆試
- 陣列指標陣列指標
- C++語言中陣列指標和指標陣列徹底分析(系列一) (轉)C++陣列指標
- 陣列指標:a pointer to an array,即指向陣列的指標陣列指標
- 徹底搞清C/C++中一維陣列,二維陣列,指標,陣列指標和指標陣列以及指向指標的指標,行地址和列地址之間的關係C++陣列指標
- (C語言)使用指標列印陣列的內容C語言指標陣列
- C語言核心之陣列和指標詳解C語言陣列指標
- C語言系列之 指標與陣列總複習視訊教程C語言指標陣列
- 郝斌老師C語言學習筆記----指標和陣列C語言筆記指標陣列
- c程式設計--指標與陣列C程式程式設計指標陣列
- 補充內容:C++語言中陣列指標和指標陣列徹底分析 (轉)C++陣列指標
- 陣列和指標陣列指標
- 指標和陣列指標陣列
- 二維陣列與指標陣列指標
- 深入探索 C/C++ 陣列與指標的奧祕之一:陣列與指標概念剖析C++陣列指標
- 日常學習儲存--陣列和指標陣列指標
- 陣列與指標&氣泡排序陣列指標排序
- 字串指標與字元陣列 (轉)字串指標字元陣列
- 指向陣列的指標陣列指標
- C語言_指標和陣列的幾種訪問形式C語言指標陣列
- 物聯網學習教程— 多維陣列與指標陣列指標
- 陣列,函式與指標 詳解陣列函式指標