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語言陣列指標
- 指標陣列和陣列指標與二維陣列指標陣列
- Golang 學習——陣列指標和指標陣列的區別Golang陣列指標
- Go 陣列指標(指向陣列的指標)Go陣列指標
- C語言指標和陣列筆試題C語言指標陣列筆試
- C陣列和指標陣列指標
- 陣列指標陣列指標
- (C語言)使用指標列印陣列的內容C語言指標陣列
- C語言系列之 指標與陣列總複習視訊教程C語言指標陣列
- c程式設計--指標與陣列C程式程式設計指標陣列
- 二維陣列與指標陣列指標
- 指標陣列練習排列字串指標陣列字串
- 日常學習儲存--陣列和指標陣列指標
- 物聯網學習教程— 多維陣列與指標陣列指標
- 陣列,函式與指標 詳解陣列函式指標
- 透過指標引用陣列指標陣列
- C++語言程式設計筆記 - 第6章 - 陣列、指標與字串C++程式設計筆記陣列指標字串
- C語言使用指標對陣列指定位置進行插入元素C語言指標陣列
- C語言指標學習C語言指標
- 【C】 28_指標和陣列分析(上)指標陣列
- 【C進階】28、指標和陣列分析指標陣列
- 【原創】淺談指標(十三)指向陣列的指標指標陣列
- C語言學習之:指標與字串C語言指標字串
- C----陣列越界問題、指標入門陣列指標
- C指標和陣列的關係詳解指標陣列
- 二維陣列的指標的理解陣列指標
- 3-6指標與陣列的天生姻緣指標陣列
- 利用c:forEach標籤遍歷陣列陣列
- C語言指標C語言指標
- C語言陣列C語言陣列
- C語言 第 7 節 如何將字串指標指向的內容賦值給陣列C語言字串指標賦值陣列
- go 語言指標學習Go指標
- C語言陣列與指標(Arrays and Pointers)關係解析-差不多是一回事兒C語言陣列指標
- 陣列地址與指標之間的區別與聯絡陣列指標
- 雙指標查詢陣列的連續規律子陣列問題指標陣列