c - 我已经运行了这段代码,它将给出输出 320 我想知道这段代码是如何工作的

标签 c

我已经运行了这段代码,它将输出 320,但我想知道它是否有效

#include <stdio.h>  
int main()
{
  auto int a  = 5;
   int x ; 
    x = ~a + a&a+a<<a;
    printf("%d",x);
 }

最佳答案

使用 C 运算符优先级表,您可以使用括号将该表达式分解为更小的部分。

x = ~a + a&a+a<<a;
// Is equivalent to:
x = ((~a) + a) & ((a + a) << a);

关于c - 我已经运行了这段代码,它将给出输出 320 我想知道这段代码是如何工作的,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51708871/

相关文章:

c - 在编译时为结构构建类型描述表

c - 字符串和指针的问题

c - 使用函数将地址写入结构中的指针失败

c - 删除字符串末尾的路径分隔符

c - 我的输出没有正确显示

c - 程序问题 [C 数组]

c++ - Makefile 自定义变量

c - 带 fread 和 fwrite 的 I/O

c++ - 为什么总是避免在C/C++中使用多维数组进行数值计算?

c - C语言中Union的使用方法