c++ - 如何解释一会儿里面的情况?而(+(+ k--)!= 0)

标签 c++ operators

我们必须告诉以下代码输出:

int k = 0;
while(+(+k--)!=0){
    k = k++;
}
cout<<k;

我无法理解while条件下对k进行了哪些操作,即(+(+ k--)。

最佳答案

首先了解一元加号运算符(+)的概念。

一元加运算符(+)的结果是其操作数的值。一元加号运算符的操作数必须是算术类型。

对整数操作数执行整数提升。结果类型是将操作数提升为的类型。因此,表达式+ ch,其中ch是char类型,其结果为int;该值未修改。

https://docs.microsoft.com/en-us/cpp/cpp/standard-conversions?view=vs-2019

关于c++ - 如何解释一会儿里面的情况?而(+(+ k--)!= 0),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57335934/

相关文章:

java - double a = a + int b 和 int a += double b 有什么区别?

c++ - 什么会阻止 GetPixel 工作?

c++ - Cocos2d-x v4.0在使用Xcode 12,Xcode 12.1,Xcode 12.2的iPhone模拟器中崩溃

vba - (非 1)由于某种原因计算为 -2

javascript - 为什么 ~ 运算符为 Javascript 中的函数返回 -1?

用于组合两个函数 f 和 g 的 Haskell 表示法,其中 g 接受多个参数

c++ - 定义模板类、运算符和迭代器的麻烦

c++ - SDL_SetWindowSize是否触发窗口事件?

c++ - 控制台应用程序 C++

c++ - Qt 是否有自己的 boost::optional 替代方案?