精品熟女碰碰人人a久久,多姿,欧美欧美a v日韩中文字幕,日本福利片秋霞国产午夜,欧美成人禁片在线观看

C++ 指針 vs 數組

C++ 指針 vs 數組

C++ 指針C++ 指針

指針和數組是密切相關的。事實上,指針和數組在很多情況下是可以互換的。例如,一個指向數組開頭的指針,可以通過使用指針的算術運算或數組索引來訪問數組。請看下面的程序:

#include <iostream>
 
using namespace std;
const int MAX = 3;
 
int main ()
{
   int  var[MAX] = {10, 100, 200};
   int  *ptr;
 
   // 指針中的數組地址
   ptr = var;
   for (int i = 0; i < MAX; i++)
   {
      cout << "Address of var[" << i << "] = ";
      cout << ptr << endl;
 
      cout << "Value of var[" << i << "] = ";
      cout << *ptr << endl;
 
      // 移動到下一個位置
      ptr++;
   }
   return 0;
}

當上面的代碼被編譯和執行時,它會產生下列結果:

Address of var[0] = 0xbfa088b0
Value of var[0] = 10
Address of var[1] = 0xbfa088b4
Value of var[1] = 100
Address of var[2] = 0xbfa088b8
Value of var[2] = 200

然而,指針和數組并不是完全互換的。例如,請看下面的程序:

#include <iostream>
 
using namespace std;
const int MAX = 3;
 
int main ()
{
   int  var[MAX] = {10, 100, 200};
 
   for (int i = 0; i < MAX; i++)
   {
      *var = i;    // 這是正確的語法
      var++;       // 這是不正確的
   }
   return 0;
}

把指針運算符 * 應用到 var 上是完全可以接受的,但修改 var 的值是非法的。這是因為 var 是一個指向數組開頭的常量,不能作為左值。

由于一個數組名對應一個指針常量,只要不改變數組的值,仍然可以用指針形式的表達式。例如,下面是一個有效的語句,把 var[2] 賦值為 500:

*(var + 2) = 500;

上面的語句是有效的,且能成功編譯,因為 var 未改變。

C++ 指針C++ 指針

下一節:C++ 指針數組

C++ 簡介

相關文章