C++中数组索引a[i++]与a[++i]的区别

学习笔记

c++

今天在做算法题的时候连着被几道题卡住了,明明逻辑和正解一致,但是结果存在差异,找原因的时候发现了一个以前没有踩过的坑,或者说以前踩了现在又忘了。
int a[3] = {0, 1, 2};
int i = 0;
a[i++] = a[2]//数组变成{2, 1, 2}显然在这里是先进行a[i] = a[2]的赋值操作,再对i进行加一操作。
a[++i] = a[2]//数组变成{0, 2, 2}显然在这里是先进行i加一操作,再进行a[i] = a[2]的赋值操作。

这和平时循环中的i++, ++i操作有着明显的区别,以前我一直把两者进行混用,因为觉得++i和i++没有区别。这几天刚开始刷算法题发现有好多平时不注意的细枝末节在跑结果的时候都会产生异常,这也算是警示了吧。

  • 40
    点赞
  • 53
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
I made this file by collecting kinds of paper test information online in about half a year. I made it public to help the ones hunting for jobs like myself last year. If anything is wrong, Please contact me by CSDN or Peking Moment at gmail dot com. You can print or note this file by yourself without纸上谈兵 刖音……… 操作系统及 linux 14 1.进程与线程 1)同步机伟 14 2)进程通信… 15 3)同步与通信 4)进程调度 16 5)多进程与多线程的区别….17 6)死锁 17 7〕)进程与线程 18 2. fork ““““““““““““““ 18 3. Linux…………… 20 4, RAID 21 5.测试…. 1面 道面准 21 6.堆栈数据代码区 …22 7.文件读写 n1道面1面面主B1 23 1) fclose(……… 23 2)fopen 23 3fseek0 .24 4)fread 24 5) fwrite(… 24 8.硬链接与软链接 25 .C++与面向对象语言 26 1.C语言基础问题… 26 GoogLe+@http://dwz.cn/fada5 CsdN@http://dwz.cn/as2ik 1)关于 const的问题 26 2)浅复制与深复制.…. 3)逆波兰表达式 4)C语言变长参数0 a品 27 5)调用约定… 27 6)寄存器 28 7)关于内联数 inline 28 8 PACK.... 28 9)正则表达式 29 内存操作… 29 11)四种强制类型转换 31 12 sizeof …31 13)动态库与静态库 32 14)压栈·优先级·位序·宏· Union·指针 32 15)new& malloc… 35 16) enum 35 2.面冋对象编程 面面面 35 1)构造函数虚函数静态成员函数…… 35 2)copy& assignment… 36 3)列表初始化 37 4)多态… 37 5)静态绑定与动态绑定 38 6 Explicit mutable volatile internal 39 7)继承… 39 8〕)堆栈溢出 面主1面主面:aat 40 9)重载操作符 40 10) Final 1 C+ 41 3.设计模式. .41 1)UTF编码协议… 41 〕)创建型模式( creational pattern)…… 41 3)单例模式 1面a i1面 42 4)策略模式…… 主主主基主主主主 42 5)MVC……, 43 6) PIMPL….... “4 .43 7)RAIL 44 4 STL 44 1) Vector.… 44 2]upper_ bound&lower_bound 45 mAp 45 数据结构 46 1.树. 146 1)基本知识 …46 2)几个问题 46 3)完全二叉树( Complete binary tree)… 54 4)次优查找树 55 5)最优二叉树霍大曼树…… 55 6) BST: Search/insert/delete 56 7)平衡二叉树与AVL树 8)B树与B+树 57 9)红黑树 59 2.栈 59 GoogLe+@http://dwz.cn/fada5 Csdn@http://dwz.cn/as2ik 1)括号配对 59 3.链表… 61 1)单向链表交点问题 61 2)链表内环的存在间题 62 3)链表逆置反向存储… 63 4)将两个排序好的链表归并 4.图. 面道盖 主1 65 1)某本知识….,… 65 2)图的表示…, 1面自1主主主日1面主 65 )DFS&BFS…....… 6 4D&b&FW algorithm 68 5)应用 主自 着面 69 5.排序 70 1)基木知识 …70 2)快速排序 …71 3)插入排序 72 4)希尔排序… …72 5)选择排序 72 6)归并排序… 73 7)堆排序 74 8)拓扑排序… 75 9)计数排序… 76 6. Hash 76 1) Consistent Hashing…… 76 7.查找元素∴ 77 1)一般二分查找…… 77 2)循环升序数组 77 3)杨氏矩阵… 4)跨行查找字符串 81 5)Trie树 81 8.其他. 1)主定理与复杂度 81 2)静态存储与动态存储… 82 3)字符串匹配 主主面主主主 ….82 四 数据与计算机通信… 85 1 OSI 85 2.TCP协议 85 1.通路的建立 .86 2.数据传输 86 3.连接终止 87 4.拥塞控制 88 5. Soket通讯与TCP原语 88 3.UDP协议… 89 4.分组交换 90 5.HTTP协议… 90 1)TTP协议简介 2)HTTP协议方法 90 3)HT"TP响应,,…,,… 1 4)示例 91 6.IP协议… 92 1)IPv4 92 2)子网划分 92 GoogLe+@http://dwz.cn/fada5 Csdn@http://dwz.cn/as2ik 7. ICMP 93 8.ARP与RARP 93 数据库 94 1.主键/超键/候选键. 94 2 ACID 1面主 …94 3.数据库范式… n010000I 94 4.数据库的基本语句 11面 95 5.游标 …………95 6.索引 主主主 主主基主主主主主主签主主主 95 7.语句 96 8.内连接与外连接 96 9.视图 96 六.算法及智力题目 97 1.小白鼠试毒问题及扩展… 主面⊥ 自11自主 97 2.大半寻找次品球问题及扩展. 主主主在主主 97 3.抽扑克牌问题. 98 4.三密码锁问题…… 面面面 99 5.猜数字问题 99 6.最大连续子序列问题 100 7.优惠券问题 101 8.闫隔翻眼镜问题.… …102 9.扔鸡蛋确定楼层问题..-. 02 10.左上右下最大流问题 106 11.三角形内产生随机数 111 12.赛与问题 …111 13.过河问题〔 intel)… 113 14.数星星问题.… 114 15.交流问题/ Gossip problem 114 16.交换问题. 15 17.换数… 18.消耗问题…… 117 19.四则算式 17 20.国王与魔鬼下棋问题 11面 121 七.数学与逻辑…… 122 1.停时定理 122 2.基本公式 123 3.实现'a+b 123 4.估算N!的位数.0 123 5.N的开方 124 6.三个数组求最大距离 126 7.6,9,140可以组合成大于N的所有数请问N最小为?…126 8.判断一个点位于一个多边形的内部? 126 9.求连续数组的最大乘积 127 10.台阶接水问题. 127 11.最小交集. 127 12.概率问题 127 1)生日悖论之二 127 2〕)升级概率问题 128 3)碰撞概率…,… 128 4)布丰投针问题,…,,… …128 )概率组合示例….129 13.排列组合问题 130 GoogLe+@http://dwz.cn/fada5 CsdN@http://dwz.cn/as2ik 1)组合 130 2)全排列 130 3)错排问题..0 133 4)输入,输出对应的所有长度为的二进制串 134 5)输入56,输出11-1621-26…51-56… 135 6)已知字符串里的字符是互不相同的,现在任意组合,比如ab,则输出a, ab,ba,bb,编程接照字典序输出所有的组合 .136 八.手写代码. 138 1. strcpy函数…,,,,, 面面1a面 …138 2.atoi.…, 自1面 主主道 138 3.itoa(Intel) 139 4.约慭夫环〔nte) 面111面D面主 139 5.二分查找函数 140 6.实现栈或者树的建立查找删除销毁操作… 141 7.斐波那契数列 141 8.求两个数组的相同元素 141 9.查找一个间大的数… 141 10.编写类 String的构造析构赋值函数…,…,…,,, 141 11.输入两个宇符串,输出第二个字符串在第一个字符串的位序 143 12.方块寻径…… …144 13.实现积分图 145 语…… 146

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值