| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 452 人关注过本帖
标题:求解:有关计算方面的
只看楼主 加入收藏
树上月
Rank: 3Rank: 3
等 级:论坛游侠
威 望:1
帖 子:114
专家分:154
注 册:2010-1-6
结帖率:87.5%
收藏
已结贴  问题点数:10 回复次数:5 
求解:有关计算方面的
#include <stdio.h>
main()
{
    int a=5,b,c,i=10;
    b=a++;
    c=++b;

    printf("a = %d, b = %d, c = %d\n",a,b,c);
    printf("i,i++,i++ = %d,%d,%d\n",i,i++,i++);
    printf("%d\n",++i);
    printf("%d\n",--i);
    printf("%d\n",i++);
    printf("%d\n",i--);
    printf("%d\n",-i++);
    printf("%d\n",-i--);
    getchar();
}
这个程序的运行结果是什么?
搜索更多相关主题的帖子: 求解 
2010-03-09 21:34
cnfarer
Rank: 16Rank: 16Rank: 16Rank: 16
等 级:版主
威 望:179
帖 子:3330
专家分:21157
注 册:2010-1-19
收藏
得分:1 
运行下不就知道了!

★★★★★为人民服务★★★★★
2010-03-09 21:50
ldg628
Rank: 12Rank: 12Rank: 12
等 级:火箭侠
威 望:3
帖 子:526
专家分:3036
注 册:2009-6-23
收藏
得分:9 
a = 6
b = 6
c = 6
printf("i,i++,i++ = %d,%d,%d\n",i,i++,i++);这个对于不同的编译器会有不同的结果,vc的结果是10,10,10,gcc的结果是12,11,10
剩下的就好算了:
13 12 12 13 -12 -13
2010-03-09 22:09
树上月
Rank: 3Rank: 3
等 级:论坛游侠
威 望:1
帖 子:114
专家分:154
注 册:2010-1-6
收藏
得分:0 
回复 2楼 cnfarer
我就是想问下这个运行的答案是怎么出来的;;;

每一个不曾起舞的日子,都是对未来的一种辜负......
2010-03-09 22:11
树上月
Rank: 3Rank: 3
等 级:论坛游侠
威 望:1
帖 子:114
专家分:154
注 册:2010-1-6
收藏
得分:0 
回复 3楼 ldg628
这是怎么出来的啊?
能不能讲详细点啊!!

每一个不曾起舞的日子,都是对未来的一种辜负......
2010-03-09 22:15
ldg628
Rank: 12Rank: 12Rank: 12
等 级:火箭侠
威 望:3
帖 子:526
专家分:3036
注 册:2009-6-23
收藏
得分:0 
i++ 先取i的值,i再自加
++i i先自加,再取i的值   这样abc的值就可以套出来了;
printf("i,i++,i++ = %d,%d,%d\n",i,i++,i++);这个对于不同的编译器会有不同的结果,gcc计算的顺序是从右至左,++i 与i单独取值时,是所有运算结束后i的值,当++i与i和别的式子一起运算时,它们是该次运算后的最终值,所以gcc的值会是 12,11,10,而vc没有怎么研究,可能是同时计算的吧,所以为10,10,10,但把最后一个i++改为++i就变成11,11,11了,它的计算顺序也应该是从右至左,可能是根据前加后加取数据给下一个式用的吧,具体自己研究研究;
最后两个根据符号的优先级做,不是难题
2010-03-09 22:35
快速回复:求解:有关计算方面的
数据加载中...
 
   



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

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