浅析 i++ 与 ++i 的区别
来源:互联网 发布:java键盘 上下左右监听 编辑:程序博客网 时间:2024/05/07 05:31
i++ 与 ++i 的主要区别有两个:
1、 i++ 的返回值为原值,++i 返回值是加1后的值。
2、 i++ 不能作为左值,而++i 可以。
i++ 与 ++i 定义的比较
前缀形式 ++i 定义
//这里返回的是一个引用形式,就是说函数返回值也可以作为一个左值使用int& int::operator++() { //函数本身无参,意味着是在自身空间内增加1的 *this += 1; // 自增加1 return *this; // 取回当前自身的值(+1后的值)}
后缀形式 i++ 定义
//函数返回值是一个非左值型的,与前缀形式的差别所在const int int::operator++(int){ //函数带参,说明有另外的空间开辟 int oldValue = *this; // 取回值 ++(*this); // 自增加1 return oldValue; // 返回被取的值}
AT&T汇编比较
前缀形式 ++i
movl $1, 28(%esp)addl $1, 28(%esp) //“与”运算movl 28(%esp), %eax //计算结果赋值给eax寄存器movl %eax, 4(%esp)
后缀形式 i++
movl $1, 28(%esp)movl 28(%esp), %eax //直接赋值给eax寄存器,没有经过运算leal 1(%eax), %edxmovl %edx, 28(%esp)movl %eax, 28(%esp)movl 28(%esp), %eax
阅读全文
1 0
- 浅析 i++ 与 ++i 的区别
- i++与++i的区别
- i++与++i的区别
- i++与++i的区别
- i++与++i的区别
- i++与++i的区别
- i++与++i的区别
- ++i;与i++的区别
- ++i与i++的区别
- i++与++i的区别
- i++与++i的区别
- ++i与i++的区别
- i++与++i的区别
- i++与++i的区别
- i++与++i的区别
- ++i 与i++的区别
- i++与++i的区别
- i++与++i的区别
- leetCode-Find the Duplicate Number
- Javaweb-Web应用基础
- laravel 课程学习系列四----------------第四章.Laravel中的用户认证(Auth)
- Slim研读笔记二之造一款Slim应用
- 解决mac桌面无法右键的问题
- 浅析 i++ 与 ++i 的区别
- C Primer Plus (第六版)中文版 第七章 编程练习答案
- What's the difference between tf.placeholder and tf.Variable
- 合并的2种方法
- clamav安装
- device_create device_destroy 使用==mknod及通过class_create自动创建设备节点
- 区块链的乡村及涉农应用场景和创新之道——Globalvillage Ecology
- IOCP网络模型
- 51NOD-1437-旋转字符串