none
我想知道+++ --- ++- --+是怎么个算法,快烦死了。 RRS feed

  • 问题

  • 弄个最简单的
    #include <stdio.h>
    int main()
    {
        int a, b;
        a=b=1;
        b=a+++0;
        printf("a=%d\tb=%d\n",a,b);
        return 0;
    }
    得出a=2  b=1
    怎么得出的结果就这么奇怪呢,到底是怎么运算啊?
    2009年12月4日 1:40

答案

全部回复

  • 这个问题很难么?入门教材上的练习题呃。
    高手快来快来。
    2009年12月4日 2:05
  • O(∩_∩)O哈哈~ 是太简单的了  一般多看看书就会明白的。。。。。。 偶也是新手哈
    记住一个规律吧  ++在变量前 当时的值 就+1了 , ++在变量后  要下次使用的时候才会+1
    2009年12月4日 2:13
  • 那么像这个:    a=b=0;
        b=a++;
        printf("a=%d\tb=%d\n",a,b);
    得出a=1  b=0,a增加了1是没错,可是b不是等于a吗?
    2009年12月4日 2:20
  • b=a++;是把a当前的值复制到b 所以b=0;复制后a会自加1 所有 a=1
    • 已标记为答案 enjoyvista 2009年12月4日 2:30
    2009年12月4日 2:26
  • 哦~我终于弄明白了。
    太感谢你的回答了,呵呵。
    2009年12月4日 2:30
  • C++标准中没有定义这些运算符的顺序,所以这样的代码是不可移植的。如果要这样的代码在所有编译器中运算结果都相同,要用括号确定运算顺序。

    The following is signature, not part of post
    Please mark the post answered your question as the answer, and mark other helpful posts as helpful.
    Visual C++ MVP
    2009年12月4日 20:42
    版主