我正在读一本名为“在Mac上学习C”的书。它将char数据类型定义为1字节数据类型。这是否意味着具有char数据类型的变量不能保存诸如5000之类的整数?我很困惑。本书有一个示例程序,将变量数据类型指定为char,变量中包含5000。它实际上是一个5000长的字符串。示例:(char rating [5000];)。我以为char只能保存ascii集或数值?对不起,我对编程很新。
答案 0 :(得分:5)
这是否意味着具有char数据类型的变量不能保存整数,例如5000?
没有。在字节非常长的平台上,理论上char
可以保存值5000
。
但是,这与您阅读的示例无关。这:
char rating[5000];
创建一个5000 char
的数组。 它没有使用值rating
初始化5000
。您是否对C ++的括号初始化语法感到困惑?那将是
char rating(5000);
它完全不同。无论如何它根本就不是有效的C.
答案 1 :(得分:3)
char rating[5000]
表示一组5000
个字符。也就是说,它将在内存中占用5000 * sizeof(char)
的空间。
答案 2 :(得分:2)
char rating[5000]
将创建一个包含5000个char元素的数组。
答案 3 :(得分:-1)
char数据类型为1字节数据类型。这是否意味着具有char数据类型的变量不能保存整数,例如5000?
字符是指字符。如您所知,char
变量保存1个字节的空间。因此,它可以保持完全 一个数字或一个字母 - 不多也不少。 Char
值是单字符值。
这意味着 - char数据类型的变量不能保存5000之类的整数。计算机内存上没有足够的空间。如果输入的值包含多个字符(例如5000
),则只接受第一个字符。您无法将此类数据提供给char
变量。
使用此程序可以更好地理解。
#include <stdio.h>
main()
{
char s;
scanf("%c", &s);
printf("%c", s);
return (0);
}
尝试输入5000并观察程序打印输出的内容。
示例程序将变量数据类型指定为
char
,变量中包含5000。它实际上是一个5000长的字符串。示例:(char rating [5000];)。
如果你不知道,string是char
的数组(即字符)。 char rating[5000]
声明了一个字符串数据类型。它将rating
定义为5000 char
s的字符串,即5000字符长的字符串。 但是,它没有使用值5000初始化rating
。错误的解释:char rating='5000'
相反,它声明rating
的大小为{ {1}}。强>
我认为char只能保存ascii集或数值。
是的,你对ascii部分是正确的。 char变量可以随时保存任何一个 ascii值。字母,数字和符号一起形成ascii集。但是,数值不属于这一类。数值是幅度,不一定只由一位数组成。 数字(即0到9之间的数字)是正确的术语。
总而言之,5000
是一种数据类型,可以存储字母/字母或数字/数字的值。 字符串是char
的一组。 &#39; 一&#39;或&#39; 1 &#39;可以是char
数据,但词组或句子不能。要将一组字符存储到变量中,请使用字符串。记住这些简单的事实,让您的生活更轻松。