#include <stdio.h>
int main(void)
{
short a = -20;
int b = (int)a;
int c = a;
long d = a;
printf("b: %d\t; c: %d; d: %ld\n", b, c, d);
}
the result:
b: -20; c: -20; d: -20.
将一个有符号类型的变量赋值给一个更大的有符号的变量,不会因此负数变成了正数。
比如short类型的-1,其存储值是0xffff,将其赋值给int类型的变量时不会因为int类型表示的数值更大而将0xffff认为是正数0xffff。