i++ ++i 的笔试题
来源:互联网 发布:有名的软件供应商 编辑:程序博客网 时间:2024/05/22 12:59
#include <stdio.h>int i = 4;void main(){ ++i += i++; printf("i=%d",i);}
输出是什么?
看看汇编的代码
mov eax,dword ptr [i]
add eax,1
mov dword ptr [i],eax //前面实现了 ++i 此时 i的值为4,
mov ecx,dword ptr [i]
add ecx,dword ptr [i]
mov dword ptr [i],ecx //实现了 += 的运算,i = 5 ,i += i;及i= 10
mov edx,dword ptr [i]
add edx,1
mov dword ptr [i],edx //最后实现 i 自增一的运算
考察点则是 :i++ ,++i的区别
区别在于i++是i先不自加,在语句完后自加,++i先自加。此处如变成 i++ += ++i,则会发生编译问题,
错误显示 error C2106: '+=' : left operand must be l-value
此时 i++ 返回的应该寄存器里的值,并非一个可赋值的变量
而 ++i,则返回的是i。
0 0
- i++ ++i 的笔试题
- 求递增数列中所有A[i]=i的元素(阿里巴巴2013笔试题)
- 笔试题while((i+1) == (i+1)){}引发的思考
- 数据库笔试题及答案I
- 数据库笔试题及答案I
- 每天一道C++笔试题 I
- i++ ,++i,i=i++的问题
- i++ ,++i,i=i++的问题
- i++;++i;i--;--i 的区别
- ++i,i++,--i和i--的区分
- i++ 、++i 、i-- 、--i 的效率问题
- 输出i到N,再从N到i的每个数,每个一行----EMC笔试题
- i++*i++的问题
- i++,++i的困扰
- i++,++i的区别
- i++,++i的区别
- i++ , ++i 的区别
- i++,++i的区别
- POJ 2503
- Const速记——啥东西不总结只转发就不是你的
- android之ContentObserver内容观察者的使用
- twaver flex 编程之Group局部布局
- Hdu 1695 GCD (数论 容斥原理)
- i++ ++i 的笔试题
- 关于epoll中event.data联合体的疑问解决方法
- 一个能够完成购买商品功能的简单程序的流程
- Android手机平板两不误,使用Fragment实现兼容手机和平板的程序
- 《C++ Primer》学习之string
- 20140330 这几天想做一个安卓的游戏,我还起名字叫"再战" step_1
- 配置项目时该引用的jar
- 概率论与数理统计常见名词
- OpenERP Web开发