chengz97
2016-10-16 16:03
采纳率: 50%
浏览 997
已采纳

新人求教C语言运算问题

 
 
int main(void)
{
    int x,y,z;
    x=y=2;
    z=3;
    y=x++ -1;
    printf("%d\t %d\t",x,y);
    y=++x-1;
    printf("%d\t %d\t",x,y);
    y=z-- +1;
    printf("%d\t %d\t",z,y);
    y=--z+1;
    printf("%d\t %d\n",z,y);
    return 0;
}

输出的结果是3 1   4 3   2 4   1 2
按照我对于自增自减运算符的理解 第一个y=x++ -1; 不应该是2先加1 然后减1应该是2吗 为什么是3
一系列的不理解 希望大手能给点解释 关于运算顺序和为啥出来这个运算结果的解释

  • 点赞
  • 写回答
  • 关注问题
  • 收藏
  • 邀请回答

8条回答 默认 最新

  • blownewbee 2016-10-16 16:11
    已采纳

    y=x++ -1;
    是y = x - 1;
    x++;

    y=++x-1;
    是x++;
    y = x - 1;

    点赞 评论
  • 当作看不见 2016-10-16 16:12

    你理解反了,x++,先加完(使用过一次x,x的值才会+1)
    ++x,x先加一(不使用,直接先加1再说),先加,然后再使用。

    点赞 评论
  • iThinkCRL 2016-10-16 16:14

    “<语句>”中的x++相当于:

    <语句>
    x=x+1

    而“<语句>”中的++x相当于:
    x=x+1
    <语句>

    ~~~~~~~
    一个是后加,一个是先加。

    点赞 评论
  • Xth8013 2016-10-16 17:45

    自增自减运算符,你理解错了。你可以看看http://m.blog.csdn.net/article/details?id=7446587
    这里面有详讲

    点赞 评论
  • android_0327 2016-10-16 18:58

    第一个y=x++ -1; 不应该是2先加1 然后减1应该是2吗 为什么是3 x++中++在后会先使用X值进行计算 为Y=x-1 给y赋值完成后 y=1 运算结束后 再X++自增1 即 X=X+1 x=3

    点赞 评论
  • zilin-lynn 2016-10-17 01:09

    记忆小技巧:x++,x在前意味着本身;++x,+在前,意味着加1

    点赞 评论
  • X++,先赋值再加,++X,先加后赋值.

    点赞 评论
  • chenxulong 2016-10-17 02:07

    x++是指运算式结束后x再加1 ,则 y = 2-1 = 1; x = 2+1; 故输出3 1

    点赞 评论

相关推荐 更多相似问题