正在閱讀:新手入門:C/C++中數(shù)組和指針類型的關(guān)系新手入門:C/C++中數(shù)組和指針類型的關(guān)系

2005-03-01 10:10 出處:PConline 作者:管寧 責任編輯:xietaoming

  對于數(shù)組和多維數(shù)組的內(nèi)容這里就不再討論了,前面的教程有過說明,這里主要講述的數(shù)組和指針類型的關(guān)系,通過對他們之間關(guān)系的了解可以更加深入的掌握數(shù)組和指針特性的知識!

  一個整數(shù)類型數(shù)組如下進行定義:

int a[]={1,2,3,4}; 

  如果簡單寫成:

a;//數(shù)組的標識符名稱

  這將代表的是數(shù)組第一個元素的內(nèi)存地址,a;就相當于&a[0],它的類型是數(shù)組元素類型的指針,在這個例子中它的類型就是int*

  如果我們想訪問第二個元素的地址我們可以寫成如下的兩種方式:

&a[1]; 
 
a+1//注意這里的表示就是將a數(shù)組的起始地址向后進一位,移動到第二個元素的地址上也就是a[0]到a[1]的過程!

  數(shù)組名稱和指針的關(guān)系其實很簡單,其實數(shù)組名稱代表的是數(shù)組的第一個元素的內(nèi)存地址,這和指針的道理是相似的!

  下面我們來看一個完整的例子,利用指針來實現(xiàn)對數(shù)組元素的循環(huán)遍歷訪問!

#include <iostream
using namespace std; 
 
void main(void

    int a[2]={1,2}; 
 
    int *pb=a; //定義指針*pb的地址為數(shù)組a的開始地址 
 
    int *pe=a+2; //定義指針*pb的地址為數(shù)組a的結(jié)束地址 
 
    cout << a << "|" << a[0] << "|" << *(a+1) << "|" << pb << "|" << *pb <<endl; 
     
    while (pb!=pe) //利用地址進行邏輯判斷是否到達數(shù)組的結(jié)束地址 
    { 
        cout << *pb << endl; 
        pb++; //利用遞增操作在循環(huán)中將pb的內(nèi)存地址不斷向后遞增 
    } 
    cin.get(); 
}

302 Found

302 Found


Powered by Tengine
tengine