gpt4 book ai didi

c# - 为什么字符串相加结果如此奇怪?

转载 作者:太空狗 更新时间:2023-10-29 22:09:00 26 4
gpt4 key购买 nike

public static void Main(string[] args)
{
int num = 1;
string number = num.ToString();
Console.WriteLine(number[0]);
Console.WriteLine(number[0] + number[0]);
}

我期待 111 的输出,但我得到的是 198。我错过了什么?

最佳答案

number[0] 的类型是char,而不是string - 您没有执行任何字符串连接。相反,您得到了一个值为 49 的 char('1' 的 UTF-16 值)。没有 +(char, char) 运算符,因此两个操作数都被提升为 int 并且您正在执行整数加法。

所以这一行:

Console.WriteLine(number[0] + number[0]);

实际上是这样的:

char op1 = number[0];
int promoted1 = op1;

char op2 = number[0];
int promoted2 = op2;

int sum = promoted1 + promoted2;
Console.WriteLine(sum);

(从逻辑上讲,提升可能发生在两个操作数都被求值之后——我没有检查规范,因为它不会失败,所以这并不重要。)

关于c# - 为什么字符串相加结果如此奇怪?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57698241/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com