Why does Console.WriteLine(3 + 'z' + 4); result in 129 in C#?
这是他们作为我课程的一部分所包含的东西,只是想知道为什么会这样做,以及他们试图用它来展示什么,但似乎无法理解。当试图将字符连接到数字时,这是某种原则吗?我假设"z"是一个字符是对的吗,因为它在这里是单引号?
是不是因为你不应该写这样的东西而出错了?事先谢谢!
- 从char到int的隐式转换。我确信有重复的地方。
- "Z"的字符代码是:122。它在加法之前转换为整数。
- 这是char + char = int? Why?的副本,本身就是副本。我认为我们不需要在这个问题上再问一个问题。
zchar char值冰,冰basically a number。z将implicitly转换两个int(z冰122代码),这就是为什么3 + 'z' + 4 == 129。它将被转换,因为在两个intstatement 3 + 'z'3int冰,所以结果int也会增加。
在C #字符是一个16位的数字值,代表一个Unicode字符。所以在你的案例z冰implicitly AA 122评估。所以3 + 122 + 4equals 129。