日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > c/c++ >内容正文

c/c++

C++ 指针 vs 数组

發布時間:2025/4/5 c/c++ 38 豆豆
生活随笔 收集整理的這篇文章主要介紹了 C++ 指针 vs 数组 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

2019獨角獸企業重金招聘Python工程師標準>>>

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

#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 << "var[" << i << "]的內存地址為 ";cout << ptr << endl;cout << "var[" << i << "] 的值為 ";cout << *ptr << endl;// 移動到下一個位置ptr++;}return 0; }

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

var[0]的內存地址為 0x7fff59707adc var[0] 的值為 10 var[1]的內存地址為 0x7fff59707ae0 var[1] 的值為 100 var[2]的內存地址為 0x7fff59707ae4 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 未改變。

轉載于:https://my.oschina.net/cht2000/blog/1645089

總結

以上是生活随笔為你收集整理的C++ 指针 vs 数组的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。