发新话题
打印

C语言问题

C语言问题

#include <stdio.h>
main()
{
        int a=3,b=2,c=1;
        c-=++b;
        b*=a+c;
        {
                int b=5,c=12;
                c/=b*2;
                a-=c;
                printf("%d,%d,%d,",a,b,c);
                a+=--c;
        }
        printf("%d,%d,%d",a,b,c);
}

这道题输出结果是2,5,1,2,3,-2
为什么?
两个大括号的程序怎么阅读?

[ 本帖最后由 martinsh14 于 2008-4-8 03:42 编辑 ]
小枫,快点给我买甜甜的巧克力。
不管有几个{} 先算最里面的那个
int定义为整数  所以将小数自动认为整数
故:
int b=5,c=12;     
c/=b*2;                                           /*  C=C/B*2=6/5=1      */
a-=c;                                               /*  A=A-C=3-2=1         */
printf("%d,%d,%d,",a,b,c);                /*  此时A=2,B=5,C=1   */
a+=--c;                                            /*  A=A+--C=2            */
c-=++b;                                           /*  C=C-++B=-2          */
b*=a+c;                                           /*  B=B*(A+C)=3       */
printf("%d,%d,%d",a,b,c);                 /*  此时A=2,B=3,C=-2 */
谢谢。
小枫,快点给我买甜甜的巧克力。
发新话题
版块跳转 
互联网违法和不良信息举报中心

本论坛所有文章为会员所发布,会员拥有该内容的所有权力及责任,转载时请注明出处!
拒绝任何人以任何形式在本论坛发表与中华人民共和国法律相抵触的言论!
沪ICP备06048820号