字符变量在C中可以保存的值范围是多少?

use*_*718 0 c

我理解字符变量char C;在C中声明,但字符变量可以包含哪些值?

Jon*_*art 11

答案确实是:这取决于您的平台.

幸运的是,这都是在您的实现中定义的<limits.h>.在这里,您将找到定义a的有效范围的常量char,以及所有其他标准数据类型.

A char是一个字节,通常是 8位.从技术上讲,a charCHAR_BIT位.对于一些非常旧的机器,这是7,但这些是在C规范要求之前CHAR_BIT >= 8.还有其他类似DSP的实现具有更大的chars.

  • char可采取的范围内CHAR_MIN,以CHAR_MAX
  • signed char可采取的范围内SCHAR_MIN,以SCHAR_MAX
  • 一个unsigned char可以利用的范围内0,以UCHAR_MAX
  • 如果CHAR_MIN == SCHAR_MIN,那么你char的签名; 否则它是未签名的.


use*_*027 5

根据C标准(N1570草案):

5.2.4.2.1 整数类型的大小

下面给出的值应替换为适用于 #if 预处理指令的常量表达式。此外,除了 CHAR_BIT 和 MB_LEN_MAX 之外,以下内容将被替换为具有相同类型的表达式,该表达式是根据整数提升转换的相应类型的对象。它们的实现定义的值在幅度(绝对值)上应等于或大于所示值,并具有相同的符号。

可以通过 中定义的值检查您的实现的确切值<limits.h>

  • “它们的实现定义的值在幅度(绝对值)上应等于 * 或更大 * 显示的值。” (2认同)