c#中int和short数据类型的内存管理

时间:2017-01-02 17:11:22

标签: c#

如果我使用' int'那么可能会出现什么样的内存相关问题?而不是'短'?这是一个大错误吗?

3 个答案:

答案 0 :(得分:1)

在C#中,short可以保持-32,768到32,767之间的数字。但是整数可以将数字从-2,147,483,648保持到2,147,483,647。这种情况的原因是整数是32位变量而短路是16位变量,即整数在内存中占用4个字节而短路在内存中占用2个字节。如果适当使用短数据类型,则在执行期间可以在计算机中保存2字节内存。

如果您尝试存储的数字大于32767或小于-32,768,则会出现溢出,无法正确访问您的数据。

提示:如果您要存储小数字,并且您确定该值不会大于32,767(在这种情况下可能输入循环变量),您可以使用short并保存2个字节的内存。

答案 1 :(得分:0)

在绝大多数情况下,我不会使用int而不是short来调用一个巨大的错误(或者甚至一定是错误)。

正如其他人所指出的那样,主要区别在于int为4个字节而short仅为2.在大多数情况下,使用short代替{{1}是一种微观优化;当然,有一些例外(例如,你在一个非常受内存限制的环境中工作,你正在做一些需要大量内存并且使用short而不是int的东西会导致大量内存记忆保存等。)。

这一点可能有点争议,但在某些情况下使用short而不是int可以提高代码清晰度(如果你只是期望整数在相对较小的范围内),但这通常不是案件。

答案 2 :(得分:-1)

INT是对Int32的直接引用 范围-2,147,483,648至2,147,483,647

short指定为16Bit 范围-32,768至32,767

根据输入值的范围可以认为是错误,如果短路有足够的范围,最好使用Int16 / short来节省内存。