社区
非技术区
帖子详情
i=3,j=(++i)+(++i)+(++i);为什么在VC++6.0里运行j的值是16?
simonqsm
2009-03-25 08:31:11
#include<stdio.h>
void main(){
int i=3,j;
j=(++i)+(++i)+(++i);
printf("%d\n",j);
}
...全文
282
17
打赏
收藏
i=3,j=(++i)+(++i)+(++i);为什么在VC++6.0里运行j的值是16?
#include void main(){ int i=3,j; j=(++i)+(++i)+(++i); printf("%d\n",j); }
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
17 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
friend_880
2009-04-01
打赏
举报
回复
经典
MARK
luozhaoyang
2009-03-26
打赏
举报
回复
8楼兄弟说的很好,顶一个!
cheidtf
2009-03-25
打赏
举报
回复
项目开发中写程序绝不能这样.
毛病贼多.
rjianfeili
2009-03-25
打赏
举报
回复
我觉得应该是 先++i 3次 得6后再相加 就是18
zhangyq73
2009-03-25
打赏
举报
回复
不同的编译器运行的结果不一样
Colin_ren
2009-03-25
打赏
举报
回复
8楼的兄弟说的很对,前段时间我才研究了这个问题
sys0009
2009-03-25
打赏
举报
回复
。。。
貌似没啥意思得说
wyswyg63
2009-03-25
打赏
举报
回复
晕哦,未定义的情况,不必深究啊!
刘小西Beta
2009-03-25
打赏
举报
回复
果然~
xylicon
2009-03-25
打赏
举报
回复
在VC6中, j=(++i)+(++i)+(++i);
相当于 ( (++i) + (++i) ) + (++i)
在第一个 + 操作中,必须要求出2个i的值才能进行计算,所以就要等第二个i=5的时候,也就是2个i都为5的时候,再做+的操作,这个时候第一个括号括起来的+操作就算出结果是10然后保存在一个临时变量中。然后用这个临时变量10 再与后面那个i(这个时候i变成了6)相加,结果自然就是16了。
向良玉
2009-03-25
打赏
举报
回复
tc里只要记住++i 为先加, i++是后加就可以了
所以j=6+6+6=18
wcl19870102
2009-03-25
打赏
举报
回复
不同的编译器又不同的结果,不必计较!!!
simonqsm
2009-03-25
打赏
举报
回复
按照什么逻辑出来能是16呀,18我到是能解释
珍惜生命远离CPP
2009-03-25
打赏
举报
回复
VC9 结果18
G++ 4.2.1结果16
CodeGear C++ 6.10 结果18
按照那个结果解释
sagegz
2009-03-25
打赏
举报
回复
VS2005结果是18.
因为后缀自增++运算符的优先级是高于算术运算符号+的.
所以++,再++,再++,3->4->5->6
最后j=6+6+6=18.
bao001001
2009-03-25
打赏
举报
回复
15
yangch_nhcmo
2009-03-25
打赏
举报
回复
这种写法其结果是未定义的,在不同的编译器中会有不同的结果.
vc实现三维图形的旋转
void CCube1View::cube_def( ) ... pDC->LineTo(b[i+j].x,b[i+j].y); pDC->LineTo(b[i].x,b[i].y); } for(i=0;i;i
++
) { pDC->MoveTo(b[i].x,b[i].y); pDC->LineTo(b[i+4].x,b[i+4].y); }
贪吃蛇源代码
v
c
++
6.0
编译即可。 #include<iostream.h> #include<windows.h> #include<time.h> #include<stdlib.h> #include<conio.h> #define N 21 void gotoxy(int x,int y)// 位置函数 { COORD pos; pos.X=2*x; ...
计算机图形学示例(扫描线填充)
用V
C
++
6.0
实现的扫描线填充,裁剪算法及画线方法 CPen pen(PS_SOLID,1,fillcolor); //设置扫描线所用笔的属性 CPen *old=pDC->SelectObject(&pen); int j,k,s=0; int p[9]; //每根扫描线交点 int pmin=1000; ...
数据结构用
C
++
写的停车场系统源代码
大学2年级课程设计,用栈停车,停不下的车停在便道上,便道用队列实现,采用调用系统时间计时方法,有收费系统,计算该收的金额,实际收的金额,并找零,可以停车,取车,...在V
C
++
6.0
下编译通过,路过的高手请指点。
Symbian开发环境的安装配置 测试OK 080605PM.doc
我的版本是Windows XP Professional +V
C
++
.
6.0
.with.SP6 +ActivePerl-5.10.0.1003-MSWin32-x86-285500.msi +j2re-1_4_2-windows-i586.exe +S60_SDK_v21c_Chinese_MS S60的相关SDK到forum.nokia.com下载...
非技术区
15,440
社区成员
58,165
社区内容
发帖
与我相关
我的任务
非技术区
C/C++ 非技术区
复制链接
扫一扫
分享
社区描述
C/C++ 非技术区
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章