当前位置:首页 > 内存 > 正文

不同类型的数据在内存中(数据如何在内存中存储)

  • 内存
  • 2024-06-11 13:48:48
  • 1258

一、C语言的基本类型在内存中怎么储存的?

C语言的基本类型以二进制形式存储在内存中。

1.整数数据:所有整数(正零和负零)都以二进制补码形式存在于内存中。对于正整数,补码是它自己的原始代码。对于负整数,补码是原代码的逆加1。

2.字符数据:将相应字符的ASCII码输入到存储编码单元中,这个ASCII码的值也以二进制补码的形式存储在计算机中。

3.真实数据:也称为浮点数,在计算机中也以二进制形式存储。

所代表的基本类型是有限的。无符号整型常量的范围是0~65535,有符号数的范围是-32768~+32767。八进制无符号数的表示范围是0~0177777。十六进制无符号数的表示范围是0X0~0XFFFF或0x0~0xFFFF。

如果使用的数字超出上述范围,则必须用长整数表示。长整数由后缀“L”或“l”表示。长整数158L和基本整数常量158之间没有数值差异。


二、C语言chara[10]中[10]是什么意思

[10]表示字符数组a的维度大小。

表示数组a在内存中占用10(char)大小的空间。

另外,作为[10]中定义的字符数组,实际上只使用了9个空格来存储字符,最后一个空格是字符串终止符'保留用于存储\0'。

扩展信息:

数组:

在C语言中,数组是构造数据类型。数组可以分解为多个基本类型或构造类型的数组元素。因此,根据数组元素的类型,数组可以分为数值数组、字符数组、指针数组、结构体数组等不同类别。

关于变长数组(VLA)的问题:原来的C89标准不允许变长数组出现,但是C99标准增加了对VLA的支持,但是由于它被很多处理器使用而不是很多人因为堆栈溢出安全问题才敢使用这个变长数组,它在C11标准中被定义为可选函数。

如果您有其他语言的编程经验,您应该熟悉数组的概念。数组允许我们引用一组具有相同名称的变量并以数字方式(索引)标识它们。

数组可以在许多情况下缩短和简化程序,允许您设计使用索引值的循环来有效地处理多种情况。数组有上限和下限,并且数组的元素在上限和下限内是连续的。VisualBasic为每个索引值分配空间,因此请避免声明不切实际的大数组。

这里的数组是程序内声明的变量数组。它们与控件数组不同,控件数组是在设计时通过设置控件的Index属性来指定的。变量数组总是连续的,与控制数组不同,数组元素不能从数组的中间加载或卸载。

数组中的所有元素都具有相同的数据类型(对于C、C++、Java和Pascal来说都是如此;但是,涉及数组的所有地方并非如此。没有这样的要求(例如,对于VisualFoxpro数组)。

当然,如果数据类型是Variant,则每个元素可以包含不同类型的数据(对象、字符串、值等)。您可以声明任何基本数据类型的数组,包括用户定义的类型和对象变量。

参考来源:-数组