| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 456 人关注过本帖
标题:为什么i和j输出的值会变
取消只看楼主 加入收藏
tk0212
Rank: 1
等 级:新手上路
帖 子:7
专家分:0
注 册:2013-7-25
结帖率:100%
收藏
已结贴  问题点数:1 回复次数:1 
为什么i和j输出的值会变
# include <stdio.h>
   int main(void)
{
   int i, j, k, m;
   i = j = 3;
   k = i++;  //后自增整体表达式的值是i加1之前的值;
   m = ++j;  //前自增整体表达式的值是j加1之后的值;

   printf("i = %d, j = %d, k = %d, m = %d\n",i, j, k, m);

   return 0;
}
运行结果:/* i = 4, j = 4, k = 3, m = 4 */

我以为i和j的值应该是3和3,为什么变成4和4了, i++和++j不是分别赋给k和m了吗,为什么它自身的值也都加了1,我明白i++和++j的含义,就是不明白为什么输出的i和j的值
初学者,还往解答,谢谢
搜索更多相关主题的帖子: 表达式 return include 
2015-07-14 13:07
tk0212
Rank: 1
等 级:新手上路
帖 子:7
专家分:0
注 册:2013-7-25
收藏
得分:0 
以下是引用lwei在2015-7-14 14:39:12的发言:

这样是不是更加清楚一点:
//k=i++;m=++j;相当于
k=i;
i=i+1;
j=j+1;
m=j;
对后面的printf来说,++在前还是在后其实是没有区别的。

这样我能明白它们为什么等于3,那么它们是等价的吗?
2015-07-14 14:49
快速回复:为什么i和j输出的值会变
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.014513 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved