【发布时间】:2013-12-26 14:34:43
【问题描述】:
我无法理解为什么它的输出是 ffff 它应该是 0000。假设 int 需要 2 个字节 ffff 将存储在内存中:1111 1111 1111 1111 所以在 ~a 之后值将变为:0000 0000 0000 0000。但输出ffff 我错过了一些一般概念吗?
#include <stdio.h>
void main()
{
unsigned int a = 0xffff;
~a;
printf("%x", a);
}
输出:ffff
【问题讨论】:
-
尝试将它重新分配给它自己...只有 a++ 和 ++a 是一元操作..
-
@AurA,这不是一元运算符的意思。您还有一元
+、-和~,它们都对单个参数进行操作。只有a++和++a和a--和--a会更改它们正在操作的变量的值。
标签: c