C++ 后缀的优先级++;
考虑以下代码:C++ 后缀的优先级++;,c++,operators,C++,Operators,考虑以下代码: int a = 5; int b = a++; cout << "b is " << b << endl; // b is 5 inta=5; intb=a++; cout内置类型的postfix++操作符(和postfix--operator)的约定是,它返回以前的值,而不管发生了什么更改。因此,函数仍然返回5,即使接收更改的变量在之后被分配6。对于内置类型,后缀++运算符(和后缀--运算符)的约定是,它返回以前的值,而不管发生了什么更改
int a = 5;
int b = a++;
cout << "b is " << b << endl; // b is 5
inta=5;
intb=a++;
cout内置类型的postfix++操作符(和postfix--operator)的约定是,它返回以前的值,而不管发生了什么更改。因此,函数仍然返回5
,即使接收更改的变量在之后被分配6
。对于内置类型,后缀++运算符(和后缀--运算符)的约定是,它返回以前的值,而不管发生了什么更改。因此,该函数仍然返回5
,即使接收到更改的变量在之后被分配6
。根据,emphasis mine:
后缀++表达式的值是其操作数的值。[ 注:获得的值是原始值的副本- 尾注 ]
++表达式的值计算在
修改操作数对象。关于
不确定顺序的函数调用,后缀的操作++
这是一个单一的评估
inta=5;
int b=a++;//a的值计算为
//未修改/未增加的值
//哪一个是5
std::cout根据,强调我的:
后缀++表达式的值是其操作数的值[ 注:获得的值是原始值的副本- 尾注 ]
++表达式的值计算在
修改操作数对象。关于
不确定顺序的函数调用,后缀的操作++
这是一个单一的评估
inta=5;
int b=a++;//a的值计算为
//未修改/未增加的值
//哪一个是5
标准::cout
int get_number(){
int a = 5;
return a++;
}
int main(){
int b = get_number();
cout << "b is " << b << endl; // b is 5
}
int a = 5;
int b = a++; // the value computation for a is
// the non-modified / non-incremented value
// which is 5
std::cout << "a is " << a << std::endl; // a is 6
std::cout << "b is " << b << std::endl; // b is 5