陣列與指標 2

2021-09-27 13:49:11 字數 1629 閱讀 2685

之前寫過很多關於c++中指標使用的部落格了,其中就包含一篇陣列指標,指標陣列的部落格,所以這裡部落格名字就叫做陣列與指標(2)了。指標真的是一件讓c++又愛又恨的東西,使用的時候,一定要知道指標指向了誰,這個誰又是什麼身份。有了指標,c++可以很強大,直接操作很底層的東西,協議,記憶體以及外設,甚至可以作為所有語言的後端,座位編譯器開發語言。

另外,還需要記住一點,c++裡面本身是沒有多維陣列的,就像python天生沒有鍊錶一樣,只有一維陣列(使用for遍歷索引),其他的都是陣列的陣列,陣列的指標之類的。關於指標這部分,確實有很多需要記住的形式,當然也有一些組成規律,代表不同的意義,需要不斷鞏固使用。另外需要記住,陣列本身也是一種指標,代表乙個位址,有組織,有規律的位址組織。今天打算從最簡單化的囉嗦一次。更加詳細的介紹可以參見我之前的部落格。

乙個一維指標可以轉向乙個變數int,也可以指向乙個int型的一維陣列(行陣列),因為兩者等級一樣,都一級,而資料容量不同而已。
二維陣列  a[2][3]=,};指標p有如下幾種表達形式:   

1 方式一:int (*p)[3]=a    (或&a[0]);

測試用例:

#include

using namespace std;

int main()

,};int i,j;

int (*p)[3];//一定要加上括號,因為的優先順序高於*

p=a;//相當於p&a[0],也就是指向第乙個陣列a[0]的首位址

cout輸出結果如下:

方法二:int*p=a[0]=&a[0][0]=*a;

指標p代表的是二維陣列第乙個元素a[0][0]的首位址,其中

#include

using namespace std;

int main()

,};int i,j;

int *p=&a[0][0];//陣列元素首位址p相當於&a[0][0]

cout測試結果:

綜上二維陣列與指標的相對關係已經解釋清楚,如有不懂可將**複製,進行執行即可。

獻上我的一段**:

#includeusing namespace std;

int main()

, },, } };

//int m = 1,n=2;

//int b[m][n];

int i, j, k;

int(*p)[2][3];

p = a;

for (i = 0; i<2; i++)

for (j = 0; j<2; j++)

for (k = 0; k<3; k++)

cout << p[0] << "##" << &a[i][j][k] << endl;

return 0;

}

這個部落格c++部分多維陣列部分,有些許錯誤,請甄別。。)

陣列與指標2

1626 5 劉小銘總結 2016年10月22日 連續22天總結 內容 a 一句話概括今日目標完成情況 字元陣列與指標 指標陣列 90 結構體與陣列 80 b 具體內容 對於昨天所學的,還是要多複習複習,暫時是記住了,但容易混淆。還有就是指標陣列,這個呢,我不明白用來做什麼的,沒有看過與這個相關的程...

陣列與指標(2)

2.指標運算子 是取位址的運算子,是表示指標運算子 3.指標作函式引數 函式的引數不僅可以是整型 實型 字元型等資料,還可以是指標型別。作用是將變數的位址傳送到另乙個函式中。例如 int a,pa pa a 把a的位址給pa,都是整型把乙個指標變數的值賦予相同型別的另乙個指標變數 int a,pa ...

指標與陣列,指標陣列 陣列指標

int a 10 print n a p,a p a,a print n a 1 p,a 1 p a 1,a 1 a做乙個指標,步長為4,指向乙個元素,a做乙個指標,步長為40,指向乙個維陣列 int b 3 4 print n b p,b p,b p b,b,b print n b 1 p,b 1...