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

c语言中字符型数据所占的内存空间

  • 内存
  • 2024-06-13 02:54:13
  • 2466

一、c语言中字符型数据在内存中的存储形式是?

字符数据以ASCII码值的形式存储在内存中,即一个字节。所有类型的数据都以二进制代码0和1的形式存储在内存中。这个原则不会改变。

在C中,字符数据用于在字符变量中存储字符常量。这并不是将字符本身放入内存块中,而是将字符对应的ASCII码放入其中。在一个仓库里。

编码时,存储1个汉字需要2个字节。在UTF-8编码中,存储英文字符需要1个字节,存储汉字需要3到4个字节。UTF-16编码需要2个字节来存储1个英文字符或1个中文字符。UTF-32编码需要4个字节来存储任何世界字符。

扩展信息:

由于标准ASCII字符集中的字符数量有限,往往无法满足实际应用的要求。为此,国际标准化组织制定了ISO2022标准,该标准提供了将ASCII字符集扩展为8位编码的统一方法,同时保持与ISO646的兼容性。

ISO始终如一地开发了适合不同地区的扩展ASCII字符集包。每个扩展ASCII字符集可以扩展128个字符。这些扩展字符的编码是高级8位代码。位1(即十进制数128–255),称为扩展ASCII代码。

来源:-字符编码


二、C语言里,字符型常量占多大内存空间?

在C语言中,字符变量对应于ASCII(美国信息交换标准代码)。ASCII代码范围是0-126(十进制)。它由一个字节表示。因此,char变量占用1个字节。

C中的常量一般分为两类:整型常量和浮点型常量。整数常量的默认数据类型是int(即有符号整数类型,占用四个字节)。字符常量不是浮点常量,而是int类型。因此,char常量占用四个字节。

扩展信息:

由单个撇号括起来的字符是常量字符。例如“a”、“#”、“%”、“D”都是合法的字符常量,在内存中占用一个字节。仅包含一个字符的字符常量(例如“AB”)是非法的。符常量区分大小写,例如“A”和“a”是两个不同的字符常量。

C语言允许给整型变量赋值字符值,也允许给字符变量赋值整型值。输出时,允许将字符变量作为整数量输出,也允许将整数变量作为字符量输出。整数的大小为两字节大小,字符的大小为一字节大小。当整数量作为字符量处理时,只有低位八位位组参与处理。