1. 程式人生 > 其它 >C++指向陣列元素的指標 | 用指標輸出陣列中的10個數

C++指向陣列元素的指標 | 用指標輸出陣列中的10個數

技術標籤:C++程式碼基礎c++指標

C++指向陣列元素的指標

在C++中,一個變數有地址,一個數組包含若干元素,每個陣列元素都在記憶體中佔用儲存單元,它們都有相應的地址;指標變數既然可以指向變數,也可以指向陣列元素,所謂陣列元素的指標就是陣列元素的地址。

定義一個整型陣列array,它有10個元素:

int array[10];

定義一個基型別為整型的指標變數p:

int *p;

將元素array[0]的地址賦給指標變數p,使p指向array[0]:

p=&array[0];

和C語言一樣,在C++中,陣列名代表陣列中第一個元素的地址,因此也可以這樣寫:

p=&array[
0]; p=array;

在定義指標變數時可以直接賦初值,p的初值為array[0]的地址:

int *p=&array[0];

同樣,也可以寫成:

int *p=array;

可以通過指標引用陣列元素,假設p已定義為一個 基型別為整型的指標變數,並已將一個整型陣列元 素的地址賦給了它,使它指向某一個數組元素。

如果指標變數p已指向陣列中的一個元素,則p+1指向同一陣列中的下一個元素,p+i和array+i就是array[i]的地址,或者說,它們指向array陣列的第i個元素。

(p+i)或(array+i)是p+i或array+i所指向的陣列元素,即array[i],可以看出,[]實際上是變址運算子。對array[i]的求解過程是: 先按array+i×d計算陣列元素的地址,然後找出此地址所指向的單元中的值。

指向陣列元素的指標變數也可以帶下標,如p[i] 與* (p+i) 等價,引用一個數組元素,可用以下方法:

下標法,如array[i]形式
指標法,如*(a+i)或*(p+i)

其中array是陣列名,p是指向陣列元素的指標變數。

經典案例:C++輸出陣列中的10個元素。

#include<iostream>//預處理
using namespace std;//名稱空間 
int main()//主函式 
{
  int array[10];//定義整型陣列 
  int i;//定義整型變數 
  int *p=array;//定義指標變數,指標變數p指向陣列array的首元素 
  for(i=0;i<
10;i++)//for迴圈鍵盤輸入10個數 { cin>>*(p+i); } cout<<"輸出結果:"<<endl;//提示語句 for(p=array;p<(array+10);p++) { cout<<*p<<" ";//p先後指向array[0]-array[10] } cout<<endl;//換行 return 0; //函式返回值為0; }

執行以上程式會輸出:

2 3 5 6 1 4 5 8 9 4
輸出結果:
2 3 5 6 1 4 5 8 9 4

--------------------------------
Process exited after 27.55 seconds with return value 0
請按任意鍵繼續. . .

C++用指標輸出陣列中的10個數

更多案例可以go公眾號:C語言入門到精通