我们知道指针可以自增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;

C++数组指针不能自增1/自减1相关推荐

  1. 关于C语言中的数组指针、指针数组以及二级指针

    概念解释 数组指针:首先它是一个指针,它指向一个数组,即指向数组的指针:在32 位系统下永远是占4 个字节,至于它指向的数组占多少字节,不知道.数组指针指向的是数组中的一个具体元素,而不是整个数组,所 ...

  2. C++ 笔记(14)— 指针(指针声明、取地址、取值、new/delete、NULL指针、指针运算、指针数组、数组指针、指针传递给函数、从函数返回指针)

    1. 声明指针 指针是一个变量,其值为另一个变量的地址,即,内存位置的直接地址.就像其他变量或常量一样,您必须在使用指 针存储其他变量地址之前,对其进行声明. 指针变量声明的一般形式为: type * ...

  3. C指针4:数组指针(指向数组的指针)

    先明确两个概念:(1和2是两个完全不一样的东西) 1.数组指针:如果一个指针指向了数组(该数组就是普通定义的数组),我们就称它为数组指针(Array Pointer).(1强调的是指针) 2.指针数组 ...

  4. 【C 语言】指针 与 数组 ( 指针 | 数组 | 指针运算 | 数组访问方式 | 字符串 | 指针数组 | 数组指针 | 多维数组 | 多维指针 | 数组参数 | 函数指针 | 复杂指针解读)

    相关文章链接 : 1.[嵌入式开发]C语言 指针数组 多维数组 2.[嵌入式开发]C语言 命令行参数 函数指针 gdb调试 3.[嵌入式开发]C语言 结构体相关 的 函数 指针 数组 4.[嵌入式开发 ...

  5. delphi7存储过程传入数组_C++中的指针、数组指针与指针数组、函数指针与指针函数...

    本文从初学者的角度,深入浅出地详解什么是指针.如何使用指针.如何定义指针.如何定义数组指针和函数指针,并给出对应的实例演示:接着,区别了数组指针与指针数组.函数指针与指针函数:最后,对最常混淆的引用传 ...

  6. C语言学习之 数组,指针,字符串. (一)

    2019独角兽企业重金招聘Python工程师标准>>> 此文由来: 是看到野鬼发表的关于C语言知识内容后,一激动,手一痒.回了一篇.可惜误操作让回复没能保存. 之后再写就是下面的内容 ...

  7. C++面试题-指针-指针数组与数组指针

    C++面试题-指针-指针数组与数组指针 问:int (*p)[n]与int *p[n]的区别? 答: int (*p)[n]是数组指针,指向某n个元素所组成的整块的数组,返回值是整型指针类型的. in ...

  8. C++指针详解2_typedef函数声明类型、sizeof特性简介与数组指针间关系说明

    本节主要内容 typedef函数声明 函数指针变量声明类型 函数指针与函数指针数组 sizeof 数组与指针的关系 函数形参接收数组与接收指针的关系 基本函数声明类型与使用 使用typedef进行函数 ...

  9. C语言数组指针(指向数组的指针)详解

    数组(Array)是一系列具有相同类型的数据的集合,每一份数据叫做一个数组元素(Element).数组中的所有元素在内存中是连续排列的,整个数组占用的是一块内存.以int arr[] = { 99, ...

最新文章

  1. Spring boot centos部署启动停止脚本
  2. harris角点检测的学习
  3. python实例 73,74
  4. LightOj 1027 A Dangerous Maze
  5. c++ 服务 以当前用户拉起进程_渗透技巧——通过CredSSP导出用户的明文口令
  6. asp.net mvc4 设置build项目时,编译view页面
  7. 用Netty实现RPC
  8. 如何使用TeamViewer在会话期间画图?
  9. xcopy使用与案例使用
  10. 跟我一起玩Win32开发(18):使用对话框的两个技巧
  11. java初级开发面试题
  12. 建筑师学python有用吗_建筑师为什么要学编程?
  13. Unity AudioMixer效果器设置
  14. cad插入块_CAD图块全攻略第三期——高级技巧动态块,快来提升逼格!
  15. “数据分析师”招聘信息的数据分析
  16. 如何开发Chrome扩展程序
  17. U盘, USB读卡器, U盘读卡器三者技术分析区别
  18. 上班族用哪个邮箱好用,如何正确使用邮件工作?
  19. redis --- List类型使用
  20. mac linux 性能测试工具,Mac/Linux压力测试神器Siege详解(附安装过程)

热门文章

  1. vue开发手机页面闪烁_Vue页面加载闪烁问题的解决方法_婳祎_前端开发者
  2. Spring Cloud源码分析(一)Eureka
  3. 论文浅尝 | CoRR - 面向复杂知识问答的框架语义解析方法
  4. 论文浅尝 | NumNet: 一种带有数学推理的机器阅读理解模型
  5. 肖仰华 | 做个“有知识”的机器人
  6. docker -v -it -p 详细说明
  7. IntentService解析
  8. 考研心路历程2021北京交通大学计算机学院软件工程
  9. java和python对比----1:
  10. PowerDesigner 中SQL文件、数据库表反向生成PDM