C中的Integer变量是占用2个字节还是4个字节?它取决于哪些因素?
大多数教科书都说整数变量占用2个字节.但是当我运行程序打印整数数组的连续地址时,它显示了4的差异.
我刚刚开始学习 C,一个问题困扰了我一段时间。如果我写
int i = -1;
unsigned int j = 2;
unsigned int k = -2;
Run Code Online (Sandbox Code Playgroud)
整数文字-1and 2and的类型是什么-2,它如何转换为存储在signed intand 中unsigned int?
有符号整数是什么意思,是变量还是整数文字的属性?比如-2有符号整数和2无符号整数?
文字表达式也有类型吗?
long long int a = 2147483647+1 ;
long long int b = 2147483648+1 ;
std::cout << a << ',' << b ; // -2147483648,2147483649
Run Code Online (Sandbox Code Playgroud) 这是代码:
int a;
a = 2147483648 + 2147483648;
printf("%d", a);
Run Code Online (Sandbox Code Playgroud)
我知道 int 变量的最大数量是 2147483647。所以,据我所知,2147483648 = -2147483648。但为什么 2147483648 + 2147483648 = 0?