之前寫過很多關於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...