uacs2024

导航

C++ 指针 vs 数组

指针和数组并不是完全互换的

 1 #include <iostream>
 2  
 3 using namespace std;
 4 const int MAX = 3;
 5  
 6 int main ()
 7 {
 8    int  var[MAX] = {10, 100, 200};
 9  
10    for (int i = 0; i < MAX; i++)
11    {
12       *var = i;    // 这是正确的语法
13       var++;       // 这是不正确的
14    }
15    return 0;
16 }

把指针运算符 * 应用到 var 上是完全可以的,但修改 var 的值是非法的。这是因为 var 是一个指向数组开头的常量,不能作为左值。

下面是一个有效的语句,把 var[2] 赋值为 500:

*(var + 2) = 500;

 

posted on 2024-03-01 19:43  ᶜʸᵃⁿ  阅读(3)  评论(0编辑  收藏  举报