社区
新手乐园
帖子详情
新手求教i++问题
superjgw
2009-09-27 12:55:32
main()
{ int j=3,k;
k=(j++)*(++j)+(j--)*(--j);
printf("k=%d",k);
}
k等于几?30吗
为什么vc++和tc中运行结果不一样,而且都不是30 迷糊了!!!
...全文
428
56
打赏
收藏
新手求教i++问题
main() { int j=3,k; k=(j++)*(++j)+(j--)*(--j); printf("k=%d",k); } k等于几?30吗 为什么vc++和tc中运行结果不一样,而且都不是30 迷糊了!!!
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
56 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
yjip267
2009-10-13
打赏
举报
回复
int j=3,k;
k=(j++)*(++j)+(j--)*(--j);
k= 3*5+5*3
k=30
XyRbj
2009-10-13
打赏
举报
回复
取决于编译器。哥们 太极端了
BBiceway
2009-10-10
打赏
举报
回复
18
弘石
2009-10-10
打赏
举报
回复
理论上应该是30
aaron0211
2009-10-10
打赏
举报
回复
编译器的问题,听说 用Dev C++编译的结果是30的。
准确结果,我认为应该是30.
olncy
2009-10-10
打赏
举报
回复
我在vc的编译器下那个表达式翻译汇编成如下:(用伪代码表示)
表达式: k=(j++)*(++j)+(j--)*(--j);
伪代码:
j+=1;
j-=1;
tempA=j*j;
tempB=j*j;
k=tempA+tempB;
j-=1;
j+=1;
所以结果为: k==18
不知道TC生成的结果是怎么样的,有那位同学贴一下
aduadd
2009-10-10
打赏
举报
回复
慎用 ++
leonyu102
2009-10-10
打赏
举报
回复
4*4+3*3 = 25
可能和编译器有关
xiangweixing
2009-10-09
打赏
举报
回复
路过
shiweifu
2009-10-09
打赏
举报
回复
。。又见日经贴。。
hyd1314
2009-10-09
打赏
举报
回复
这个k=(j++)*(++j)+(j--)*(--j);
容易出错
书上有介绍啊
理论上应该是30
flyerwing
2009-10-09
打赏
举报
回复
[Quote=引用 26 楼 z782282738 的回复:]
结果是18。
第一个j++是3,++j是4。3*4=12
j--是3, --j是2。 3*2=6
12+6=18。
[/Quote]
就是18!
boyfromhuizhou
2009-10-09
打赏
举报
回复
真是很sorry!应该这样,这样等于30 但我也说不清为什么等于25
#include<stdio.h>
int Test1(int*p) //j++函数
{
int i=*p;
(*p)++;
printf("计算j++,j=%d\n",*p);
return i;
}
int Test2(int*p) //++j
{
(*p)++;
printf("计算++j,j=%d\n",*p);
return *p;
}
int Test3(int *p) //j--函数
{
int i=*p;
(*p)--;
printf("计算j--,j=%d\n",*p);
return i;
}
int Test4(int *p) //--j
{
(*p)--;
printf("计算--j,j=%d\n",*p);
return *p;
}
void main()
{ int j=3,k;
k=(Test1(&j))*(Test2(&j))+(Test3(&j))*(Test4(&j));
printf("k=%d",k);
}
boyfromhuizhou
2009-10-09
打赏
举报
回复
提供某自己的方法:
#include<stdio.h>
int Test1(int j) //j++函数
{
int i=j;
j++;
printf("计算j++,j=%d\n",j);
return i;
}
int Test2(int j) //++j
{
j++;
printf("计算++j,j=%d\n",j);
return j;
}
int Test3(int j) //j--函数
{
int i=j;
j--;
printf("计算j--,j=%d\n",j);
return i;
}
int Test4(int j) //--j
{
j--;
printf("计算--j,j=%d\n",j);
return j;
}
void main()
{ int j=3,k;
k=(Test1(j))*(Test2(j))+(Test3(j))*(Test4(j));
printf("k=%d",k);
}
在VC下测试。不过这样得到的是18 不是25 我也不知道为什么
lbx2003
2009-10-09
打赏
举报
回复
[Quote=引用 26 楼 z782282738 的回复:]
结果是18。
第一个j++是3,++j是4。3*4=12
j--是3, --j是2。 3*2=6
12+6=18。
[/Quote]
我同意这个,呵呵
kaso
2009-10-09
打赏
举报
回复
更或者:k=4*5+4*3=32???
kaso
2009-10-09
打赏
举报
回复
k=3*5+5*4???
kaso
2009-10-09
打赏
举报
回复
k=3*4+3*2=18????
aaron0211
2009-10-09
打赏
举报
回复
j的值为3,上面打错了。
aaron0211
2009-10-09
打赏
举报
回复
最后i的值是3,不明白为什么k的值为25 ?
加载更多回复(34)
php for循环题,PHPfor循环小数出现的
问题
for ($i=81.3; $i <99.4; $i+=99.3) { echo $i."";}如上打印结果到了90的时候不正常了,
新手
求教
,急~~~回复讨论(解决方案)for ($i=81.3; $i <99.4; $i+=0.01) { echo $i."";}//$i+=0.01 for里面的第二个分号后面的内容表示增加的量 每循环一次加多少$i+=0.01表示每...
linux没有mkfs4,
新手
求教
关于mkfs的有关
问题
当前位置:我的异常网» Linux/Unix»
新手
求教
关于mkfs的有关
问题
新手
求教
关于mkfs的有关
问题
www.myexceptions.net网友分享于:2015-05-08浏览:0次
新手
求教
关于mkfs的
问题
ubuntukylin14.04今天我拿了一块500G的移动硬盘,然后试试linux的分区命令分完了区要进行格式化。然后我开始用mkfs-text4/dev/sdb2一...
新手
求教
Javascript
问题
第一个 第二个 第三个 var link=document.getElementsByTagName("a"); for(var i in link){ if(document.addEventListener){ link[i].addEventListener("click",function(e){alert(e.target.tagName.toLowerCase());}
站内搜索需要php加mysql_
求教
PHP+MYSQL的高手,怎么做站内搜索,本人
新手
,最近在学,求有耐心的大神指导...
如果需要分页显示,你可以这样来:先弄一个GET数据获取页数(假设为page),然后把上面while那一段替换为以下代码:
python 以空格计算个球,python计算文字数量与空格出现数次需要一个思路,python文字,Python
新手
求教
,还...
python计算文字数量与空格出现数次需要一个思路,python文字,Python
新手
求教
,还Python
新手
求教
,还望详解!想要实现实现的功能:统计一个文本中的空格数和数字的个数。具体如下:文本:4 8 15 16 23 42 520 I LOVE LOST.得出结果:number_counts = 7space_counts = 13 #42和520之间有5个空格,4~42之间都是一...
新手乐园
33,311
社区成员
41,784
社区内容
发帖
与我相关
我的任务
新手乐园
C/C++ 新手乐园
复制链接
扫一扫
分享
社区描述
C/C++ 新手乐园
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章