| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 485 人关注过本帖
标题:自增,自减运算符使用问题
只看楼主 加入收藏
blueegg321
Rank: 2
等 级:论坛游民
帖 子:11
专家分:21
注 册:2009-7-23
结帖率:100%
收藏
已结贴  问题点数:20 回复次数:3 
自增,自减运算符使用问题
菜鸟初学C,遇到自增,自减运算时遇到问题。
书上
main()
  { int a=3,b;
  b=++a+(++a)+(++a);①
  printf(“a=%d,b=%d\n”,a,b);
  b=(a++)+(a++)+(a++);②
  printf(“a=%d,b=%d\n”,a,b); a=3;
    printf(“a=%d,b=%d\n”,a, ++a+(++a)+(++a));③
}
得出①a=6,b=18
    ②a=6,b=9
    ③a=6,b=15
可我自己在TC2.0上实验时得出①a=6,b=18
                           ②a=9,b=18
                           ③a=6,b=15
公式②结果怎么不对,这是为什么啊?
后来我把公式②单独写即:
main()
{ int a=3,b;
  b=(a++)+(a++)+(a++);②
  printf(“a=%d,b=%d\n”,a,b); a=3;
}
又得出a=6,b=9

这里面到底哪出错了呢?
搜索更多相关主题的帖子: 运算符 
2009-07-23 13:31
himpo
Rank: 3Rank: 3
等 级:论坛游侠
帖 子:192
专家分:123
注 册:2008-5-16
收藏
得分:20 
编译器不一样有时会出现不同的结果..

初学没必要搞清楚这个关系,事实上谁真正写程序也不会这么写....

这里你只要搞清楚++i 和  i++有什么区别就可以了..

优先级的顺序我一直没搞清过,我只记住了一个

()的优先级最高,搞不清楚加().
2009-07-23 13:38
liangcheng
Rank: 1
等 级:新手上路
帖 子:3
专家分:0
注 册:2009-5-18
收藏
得分:0 
main()
{int a=3,b;
 b=++a+(++a)+(++a);
 printf("a=%d,b=%d",a,b);
 a=3;注意
 b=(a++)+(a++)+(a++);
 printf("a=%d,b=%d",a,b);
 a=3;
 printf("a=%d,b=%d",a,++a+(++a)+(++a));
}
2009-07-23 14:19
liangcheng
Rank: 1
等 级:新手上路
帖 子:3
专家分:0
注 册:2009-5-18
收藏
得分:0 
main()
{int a=3,b;
 b=++a+(++a)+(++a);
 printf("a=%d,b=%d",a,b);
 a=3;注意
 b=(a++)+(a++)+(a++);
 printf("a=%d,b=%d",a,b);
 a=3;
 printf("a=%d,b=%d",a,++a+(++a)+(++a));
}
2009-07-23 14:36
快速回复:自增,自减运算符使用问题
数据加载中...
 
   



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

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