请问下c语言中int类型的变量乘以一个整数返回值类型为什么

比如
int a = 100;
a*11111其返回类型为什么类型

14个回答

一般情况下,C中int所占字节为2个或4个字节,如果是2个最大值就是65535,如果是4个就是2147483647。但是不管是否溢出,返回值都是int类型,首先int类型是默认类型,也就是说,11111是int类型,int+int还是int,望采纳。同时建议对于不确定的数据可以用long,或者longlong

这里你要考虑的溢出问题。int代表的是有符号整型,但是其长度只有16位,其中最高位表示符号位,所以它能表示的值范围为
(-2^15~+2^15-1)。当a*b(b也为整型)的结果超过其能表示的范围则出现错误。但在范围内的则没错。

整形 * 整形 不应该是整形么?

同上,不应该是整形么?

数据越界后一般低精度数据将向高精度数据扩展除非做强制转换

结果最好定义为 long ,整型之间的相乘,容易溢出

CplusAndC
CplusAndC 为啥不再加一个long?你这说法有点牵强
大约 4 年之前 回复

int在C语言中是占两个字节的,最大值应该是2的16次方-1,如果得出的值大于该值的话,应该会强制转换,类型就不是int了

如果我没记错的话,int可以是short int或者long int,具体缺省是根据所用编译环境决定的,当然无论是哪个都是整型,具体可以对结果sizeof一下。

就是整形啊,这点数还没到int的溢出

就是int.越界会报错。想那么多干什么

共14条数据 1 尾页
Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
立即提问
相关内容推荐