char 类型变量的默认值是啥意思,它等同于啥字符?

Posted

技术标签:

【中文标题】char 类型变量的默认值是啥意思,它等同于啥字符?【英文标题】:What does the default value of a char type variable mean and what character does it equate to?char 类型变量的默认值是什么意思,它等同于什么字符? 【发布时间】:2022-01-22 13:42:08 【问题描述】:

如果我声明了一个 char 类型的字段并且不对其进行初始化,它会被分配一个默认值 '\0''\0' 是什么意思? '\0' 等于什么字符(来自键盘)?

public class Program

    public static char test;

    public static void Main()
    
        Console.WriteLine($"---test---"); // output: ------
    
 

【问题讨论】:

【参考方案1】:

每个字符都映射到一个数字。例如,小写的“a”映射到 97,而大写的“A”映射到 65,制表符映射到 9。也就是说,如果有字符直接转换为整数,那么这些就是你得到的值。

\0 字符映射为 0。此外,在许多较旧(和某些当前)系统中,\0 字符用于标记字符串的结尾(.NET 使用不同的系统)。

【讨论】:

【参考方案2】:

键盘上通常没有字符,尽管在某些情况下 ctrl+@ 可能会生成它。面向文本的输出往往会有效地忽略它。

'\0'是编码为零的字符;在 ASCII 中,它的名称是 NUL。

【讨论】:

当你说'\0'是编码为零的字符你是说'\0'的等价物是数字0吗? @DDishawn 虽然 .NET 对stringchar 使用 UTF16 编码,但底端与 ASCII 重叠。你可以参考一个ASCII图表here。 @Llama 我想我开始明白了。所以 '\0' 等价于 ASCII 码 0 但不等价于键盘字符 0? @DDishawn 确实如此。键盘字符 0 用 ASCII 码 48 表示。 @DDishawn \0 是ASCII空字符,它不是字面意义上的空,这只是它的名字,它与编程中的空变量不同,\0有相当的历史,你可以阅读它Wikipedia page

以上是关于char 类型变量的默认值是啥意思,它等同于啥字符?的主要内容,如果未能解决你的问题,请参考以下文章

请问char变量是啥变量,只是跟ASCII有关吗?

在C语言中,unsigned char是啥类型

c语言中,char 和str和memset分别是啥意思

char是啥类型

c语言中const 是啥意思,怎么用,啥时候用?

C语言中 main 是啥意思?