新人求教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个回答

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

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

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

q1027798947
百里杜鹃点滴试法 都对的啊,,x++ 是3 y是1
3 年多之前 回复
qq_29875507
qq_29875507 可以
3 年多之前 回复

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

<语句>
x=x+1

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

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

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

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

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

X++,先赋值再加,++X,先加后赋值.

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

Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
立即提问