c++ - 如果 x 和 y 分别是值为 1 和 2 的两个整数。语句 y= - -x-- 是什么意思?

标签 c++ c

<分区>

我写了下面的程序,它给了我输出 0 1 但我不明白如何

main()
{
  int i = 1, m = 2;
  m= - - i--;
  printf("%d %d", i, m);
}

最佳答案

让我们考虑一下:

m = - - i--;

此处,- - 应用了两次一元减号。这实际上是一个空操作。因此上面可以简化为

m = i--;

这相当于:

m = i;
i = i - 1;

因此正确的输出是0 1

关于c++ - 如果 x 和 y 分别是值为 1 和 2 的两个整数。语句 y= - -x-- 是什么意思?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15699850/

相关文章:

c++ - 在调用某些设备上下文函数时,我的一些 D3D11 对象将自己作为 ComPtr 清空

c - 我做了什么?指向 double 指针的指针?

c - 保存指针的内存地址

c - if(!n/10)return; 之间有什么区别吗?如果(n/10==0)返回;?

c++ - 使用cmake创建UWP软件包

c++ - decltype(auto) 是否使尾随返回类型过时?

c++ - 如何在不通过 COM 的情况下从 VB6 调用 C++ DLL?

C++ ostream 引用

c - 伯克利套接字: connect() returns -1 with errno set to ENOENT

带方法的 C++ 结构,不带方法的 C 声明