【问题标题】: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: ------
    }
} 

【问题讨论】:

    标签: c# char field


    【解决方案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
      猜你喜欢
      • 2016-09-15
      • 1970-01-01
      • 2012-04-21
      • 1970-01-01
      • 2023-03-22
      • 1970-01-01
      • 1970-01-01
      • 2012-03-17
      • 2017-10-31
      相关资源
      最近更新 更多