为什么这两个数字比较相等,以及如何进行比较x和y? #include <stdio.h>
int main()
{
unsigned int x = -1;
int y = ~0; //type promotion from int to unsigned int
if (x == y)
printf("same");
else
有没有一种标准方法来获取变量类型的大小,并将其作为可变参数传递时将被提升为? auto x = ...;
auto y = sizeof(promoted(x));
结果应该是: char -> sizeof(int)
int -> sizeof(int)
float -> sizeof(double)
...
我见过OCA问题这个问题,需要知道为什么它输出90和不100. 下面是代码: int x = 9;
long y = x * (long) (++x);
System.out.println(y);
所以,我认为这会做的是,首先,增加x (因为这是发生在第一个正确的?),然后它会做类型提升,并采取左边的X是10,把它变长,并乘以这两个多头。对?