回 帖 发 新 帖 刷新版面

主题:C语言高手进下~~赋值语句 我有点不懂的地方

昨天 C语言我学到了  赋值语句  后来我看到 自增自减运算符    有一个例题我看不懂   我不知道他为什么算出来不是12   而是9   你帮我 看看哈  最好可以把它的运算步奏 写给我 ~~~谢谢 你了

程序一;
main()
{
     int j,i=3;
     j=(i++)+(i++)+(i++);
     printf("%d",j);
}   结果为什么是9   



程序二 ;
main()
{
     intj,i=3;
     j=(++i)+(++i)+(++i);
     printf("%d",j); 
结果是18  我怎么算  也不是18 啊 迷糊


程序三

main()
{
     int a=100;
     printf("a++=%d\n",a++);  这些什么意思啊
     printf("++a=%d\n",++a);  我看每个程序都有
     printf("a--=%d\n",a--);   这些东西 但每个
     printf("--a=%d\n",--a);   意思都不一样,
     输出结果              我用什么方法一看就    
     a++=100              知道这些是什么意思
     ++a=102              呢???
     a--=100
     --a=102

为什么会是这个结果啊 我不懂什么, 意思

以上的问题 希望 你帮我 看看

在告诉我为什么哈 谢谢你 哟 [em10][em10][em10][em10][em10]

回复列表 (共60个回复)

沙发

程序一;
main()      
{                               
     int j,i=3;                 //定义j,i是整数型,定义i初始化为3
                                ////////////////////////////////////////////
     j=(i++)+(i++)+(i++);       //j= (3+1)+(3+1)+(3+1)
                                //但是j++是先把i的值给j在i+1
                                //也就是j=3+3+3
                                ///////////////////////////////////////////
     


     printf("%d",j);            //打印j
}
我解释得对吗~~C++我刚刚学了10几天。。我解释错了别丢我鸡蛋,对我多提点意见和建议

板凳


那程序二 ;
main()
{
     intj,i=3;
     j=(++i)+(++i)+(++i);
     printf("%d",j); 
结果是18  我怎么算  也不是18 啊 迷糊

为什么是18呢

3 楼

那程序二 ;
main()
{
     intj,i=3; 
     
     j=(++i)+(++i)+(++i);
     printf("%d",j); 
}
我试过拉~~用VC++调试。应该得16``楼主是不是你搞错拉

4 楼

那程序二 
为什么得16.........我有点晕了
不是先把i+1了然后赋值给j吗
那不就是j=(3+1)=4
        j=4+(3+1)=8
        j=4+4+(3+1)=12
还有个4是哪来的。。。

5 楼

书上写的是  结果是 18 啊

6 楼

你自己实践下啊`~书上不一定是对的。。。我有好几本电子书里都有错
害得我10几天来学的东西全有问题
最好要自己实践下,用编程器试下是什么结果

7 楼

我 觉的是
j=(++j)+(++j)+(++j)

是不是先给3+1=4  在给4+1=5  在给5+1=6  最后i 就等于6  拉

然后j= 6+6+6=18  哈

8 楼

难道另外的一个4是从j里面来的/??

9 楼

可是你用编辑器试下`得出的结果是16不是18

10 楼

i是永远不变的`一直是3`~不过++i是把i+1了才=4

我来回复

您尚未登录,请登录后再回复。点此登录或注册