字母数字值是否可以存储在int数据类型中,还是需要char来存储它?
答案 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
中的字符关联的数字