c++ - 为什么 `(a--> 0)` 和 `((a--) > 0)` 相同?

标签 c++ c operators

程序如下

main()
{
int a=1;
if( a-- > 0)
   printf("AAAA");
else
   printf("BBBB");
}

它的输出是AAAA 如果我使用

main()
{
int a=1;
if( (a--) > 0)
   printf("AAAA");
else
   printf("BBBB");
}

那为什么输出又是 AAAA()-- 更受欢迎。

最佳答案

后缀运算符 --higher precedence比任何 bool 比较运算符。

您到底期望什么? a-- 始终计算为 a 的值,该值在计算后递减。

关于c++ - 为什么 `(a--> 0)` 和 `((a--) > 0)` 相同?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4884273/

相关文章:

operators - 三元和三元的区别?

c++ - 删除指针数组: _BLOCK_TYPE_IS_VALID

c++ - 如何跟踪 C++ 标准库调用的内存分配?

python - Python按位赋值运算符中的竖线

iphone - 在 Objective-C 中使用 C 函数(适用于 iPhone)

c - strtok 和指向数组的指针

java - 为什么模 3 效率低下?

C++:CRTP:如何知道所有对象都计数?

c++ - 链式转换构造函数

android - 原生 Android 开发的安全字符串函数?