在C语言中,字符数组是否总是且仅用于表示字符串?

在C语言中,字符数组是否总是且仅用于表示字符串?,c,C,由于认识到C中的字符串数据类型实际上是一个字符数据类型数组,以空字节作为终止符 一个字符数组除了用作字符串之外还能用于什么?在C语言中,是否有字符数组用于非字符串的内容?字符在C语言中只是一个小整数。它经常用于可打印字符,这就是将字符数组用作字符串时的用法 但是,只要需要字节数组,就可以使用char数组。从文件或网络中读取二进制数据是一种常用方法。由于字符的有符号性依赖于实现,因此通常应该更具体,可以是有符号字符,也可以是无符号字符 现代版本的C标准为无符号和有符号8位整数类型添加了typede

由于认识到C中的字符串数据类型实际上是一个字符数据类型数组,以空字节作为终止符

一个字符数组除了用作字符串之外还能用于什么?在C语言中,是否有字符数组用于非字符串的内容?

字符在C语言中只是一个小整数。它经常用于可打印字符,这就是将字符数组用作字符串时的用法

但是,只要需要字节数组,就可以使用char数组。从文件或网络中读取二进制数据是一种常用方法。由于字符的有符号性依赖于实现,因此通常应该更具体,可以是有符号字符,也可以是无符号字符


现代版本的C标准为无符号和有符号8位整数类型添加了typedefs uint8_t和int8_t。

就像有符号/无符号bytest数组一样,它们通常用于存储从文件读取的原始二进制数据或在处理前通过串行等方式接收的原始二进制数据。这会影响可存储的值范围。如果它被签名,它将存储从-128到127的数字。如果它是无符号的,它存储0到255之间的数字。字符在C中只是一个单字节整数。为了学究,字符至少有8位宽——在某些平台上可能更宽。它足够大,可以存储基本执行字符集中的字符编码。谢谢-看起来char的名称不好。。。为什么不直接使用字节[]?这样就少了一种数据类型,因为最常用的是保存字符。我们现在有了像uint8_t这样的typedef来表示字节。unsigned int 8bit type的缩写。出于这些目的,通常使用有符号字符或无符号字符。原因C标准没有定义字符的符号type@Alex通常情况下,不使用字符时,应始终使用有符号/无符号字符。