首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> C語言 >> C++ >> C++ 入門

指針知識(二):指針與數組的深度關聯

     編輯:C++ 入門

數組名在大多數表達式中退化為指向首元素的指針:

int a[5];
int *p = a;      // 等價於 &a[0]
// a = p; 錯誤:數組名是常量指針,不可修改

指針算術遍歷數組

for (int i=0; i<5; i++) {
    cout << *(p+i) << " ";  // 等價於 p[i]
    cout << *(a+i) << " ";  // 數組名同理
}

a[i] 編譯器實際轉為 *(a+i)。指針加減按元素大小縮放:p+1 增加 sizeof(int) 字節。

二維數組與指針

int a[3][4];
int (*p)[4] = a;  // 指向含 4 int 的數組
p[1][2] == *(*(p+1)+2) == a[1][2]

函數參數傳遞數組實為指針:void f(int a[]) 等價 void f(int *a),需額外傳長度。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved