我们可以在int数据类型中存储字母数字值

时间:2011-10-28 03:24:01

标签: c

字母数字值是否可以存储在int数据类型中,还是需要char来存储它?

4 个答案:

答案 0 :(得分:7)

字母数字值不是值。它们就像其他所有数字一样,但它们遵循指定的映射 numer - >字符

例如,根据ASCII编码,字符“A”为65。唯一的区别是你如何对待它们:如果你将它们视为数字,那么你将它们打印成数字,否则你打印它们的编码。 char数据类型只是int,大小为1个字节。仅仅因为1个字节足以存储整个扩展的ASCII表。没有真正的“字符”数据类型。

简答:是的。

答案 1 :(得分:2)

是的,您可以在int数据类型中存储字符。 char只是一个整数数据类型,如int,但保证范围较窄。

事实上,使用int而不是char来存储字符有时是正确的做法 - 例如,如果您正在从文件中读取字符,则可以使用:< / p>

int c;

while ((c = getc(file)) != EOF)
{
    /* Do something with c */

在这种情况下,您必须使用int而不是char作为c的类型,以便能够将EOF与有效字符区分开来。

答案 2 :(得分:1)

char是单字节数据类型(因此可以具有0到255之间的值)。

它有一个number -> char映射。

#include <stdio.h>

int main() {
  char c = 'a';
  int n = c;
  printf("Character '%c' stored in int as %d\n", c, n);
}

输出:

Character 'a' stored in int as 97

答案 3 :(得分:1)

您可以将字符存储在int数据类型中。 char是整数数据类型,如int,可以存储在单个字节中。 char数据类型能够存储ASCII字符集(256个字符)。 ASCII映射将0-255范围内的数字映射到字符。由于char是整数数据类型,因此您可以通过赋值操作存储与int中的字符关联的数字