對於數組和多維數組的內容這裡就不再討論了,前面的教程有過說明,這裡主要講述的數組和指針類型的關系,通過對他們之間關系的了解可以更加深入的掌握數組和指針特性的知識!
一個整數類型數組如下進行定義:
int a[]={1,2,3,4};
如果簡單寫成:
a;//數組的標識符名稱
這將代表的是數組第一個元素的內存地址,a;就相當於&a[0],它的類型是數組元素類型的指針,在這個例子中它的類型就是int*
如果我們想訪問第二個元素的地址我們可以寫成如下的兩種方式:
&a[1];
a+1//注意這裡的表示就是將a數組的起始地址向後進一位,移動到第二個元素的地址上也就是a[0]到a[1]的過程!
數組名稱和指針的關系其實很簡單,其實數組名稱代表的是數組的第一個元素的內存地址,這和指針的道理是相似的!
下面我們來看一個完整的例子,利用指針來實現對數組元素的循環遍歷訪問!
#include <iostream>
using namespace std;
void main(void)
{
int a[2]={1,2};
int *pb=a; //定義指針*pb的地址為數組a的開始地址
int *pe=a+2; //定義指針*pb的地址為數組a的結束地址
cout << a << "|" << a[0] << "|" << *(a+1) << "|" << pb << "|" << *pb <<endl;
while (pb!=pe) //利用地址進行邏輯判斷是否到達數組的結束地址
{
cout << *pb << endl;
pb++; //利用遞增操作在循環中將pb的內存地址不斷向後遞增
}
cin.get();
}