【整型常量】整型常量到底属于什么类型?书上说整型常量默认属于int...

发布时间:2021-04-04 19:05:11

整型常量到底属于什么类型?书上说整型常量默认属于int类型,如:1,如果要表示无符号int或long类型,数字后面要加上1U或1L,如果假设int类型长度是2字节,范围-32768到32767,long类型是4字节,如int a = 65565 ,65535后面没有加U,int类型肯定不是,65535已经超出范围,那65535是无符号int类型还是long类型?常量的具体属于什么类型是根据什么判断的?

网友回答

【答案】 如果你在16位的计算机(int 两字节)上执行 int a=65565;
  其实执行之后的a中是负的,并不是 65535.
  如果在32位或者64位计算机上,65535就是普通的int
  因此你的考虑有点剑走偏锋了. 追问: 我主要是想了解,16位计算机,int a = 65535 中,65535这个整型常量是什么小类整型,unsigned int还是long,因为65535后面没有加U能被看做 unsigned int ? 追答: 16位计算机,65535当然就是整型了 你不加u计算机不会当成无符号整型的,不加l也不会当成长整的。 追问: 16位计算机,65535当然就是整型了???我知道65535是整型,那是 有符号整型 还是 无符号整型?16位计算机中,65535已经超出int范围(-32768~32767),而在unsigned int(0~65535)内,应该是unsigned int吧!可是按照你的理论(你不加u计算机不会当成无符号整型的,不加l也不会当成长整的),我没有加 U 或 L 后缀啊? 追答: 你到16位的环境去编译了了试验一下。 你把65535赋值过去给普通的整型,打印出来已经不是65535了。 因为C和C++是不作溢出处理的。
以上问题属网友观点,不代表本站立场,仅供参考!