我们知道指针可以自增1/自减1,如下面这个代码是没问题的
int *var;
var++;
但如果var是指向数组的指针,那么var++是非法的,如下面例子
#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++会修改var的地址,但var 只能是指向数组第一个元素的指针,不能修改。
但是下面代码是允许的
*(var + 2) = 500;
来源:CSDN
作者:Mr.Jcak
链接:https://blog.csdn.net/weixin_38314865/article/details/104648702