Char数据类型变量

时间:2013-11-10 19:18:39

标签: c arrays variables char

我正在读一本名为“在Mac上学习C”的书。它将char数据类型定义为1字节数据类型。这是否意味着具有char数据类型的变量不能保存诸如5000之类的整数?我很困惑。本书有一个示例程序,将变量数据类型指定为char,变量中包含5000。它实际上是一个5000长的字符串。示例:(char rating [5000];)。我以为char只能保存ascii集或数值?对不起,我对编程很新。

4 个答案:

答案 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];)。

如果你不知道,stringchar的数组(即字符)。 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数据,但词组句子不能。要将一组字符存储到变量中,请使用字符串。记住这些简单的事实,让您的生活更轻松。