#include<iostream> using namespace std; int main(){ int i=3; cout<<i—i<<endl; }为什么输出1 int i=3; cout<<i---i<<endl; cout<<i;}
时间: 2024-06-18 16:02:21 浏览: 118
#include <iostream>
在这段代码中,输出1的语句是cout<<i--i<<endl;,这是因为在C++中,--运算符是一个单目运算符,它用于将一个数减1。而i--i的语法是不合法的,因为它相当于i-- - i,这里减号被解释为二元运算符,需要两个操作数,而i--已经将i减了1,不能再进行一次减法运算。因此,实际上编译器会将i--i解释为(i--)i,即先将i减1,再将新的i与原来的i相减。因此,输出结果为1。
另外,第二个语句cout<<i;会输出2,因为在执行cout<<i---i<<endl;之后,i的值已经被减为了1,而cout<<i;中的i值并没有被改变,仍然是2。
阅读全文