怎样区分++ 和-- 前置和后置

#include <iostream>
using namespace std;
int main()
{
    int x = 1, y = 1;
    cout << x-- &&  y--;
    system("pause");
    return 0;
}

为什么最后的会输出1

img

你这个x--先使用再自减 左边直接输出x的值了
比如x改为4输出就是4

img

#include <iostream>
using namespace std;
int main()
{
    int x = 4, y = 1;
    cout << x-- &&  y--;

    return 0;
}

如果是 cout <<( x-- && y--);那么x--先使用再自减,左边是1,y--先使用再自减,右边也是1,最终与运算还是输出1

cout << x-- && y--;

couts输出的是一个逻辑表达式的结果,逻辑与&&左右两侧表达式如果都为真,则输出1,否则输出0
x--和y--都是先用x和y当前值进行逻辑计算,因此代码等于:
cout << 1 && 1;
x=x-1;
y=y-1;
因此输出的结果为1,最后x和y值会都变为0

cout << x-- && y--;这句话中, x-- && y--是逻辑运算,x--和y--为后置--,所以,执行过程是
(1) x && y ,x和y都是1,所以x&&y的结果就是真,也就是1,
(2) cout 输出 1,
(3) 然后再执行x--和y--,x和y都变成0

您好,我是有问必答小助手,您的问题已经有小伙伴帮您解答,感谢您对有问必答的支持与关注!
PS:问答VIP年卡 【限时加赠:IT技术图书免费领】,了解详情>>> https://vip.csdn.net/askvip?utm_source=1146287632