基于C#连续赋值的面试题介绍
题目描述
一个 C# 程序员在面试时被要求解答以下问题:
int a = 1, b = 2, c = 3;
a += b += c;
最终 a、b 和 c 的值分别是多少?
解答
这个问题的关键在于理解赋值运算符的优先级。根据 C# 的运算符优先级表,赋值运算符 +=
的优先级低于算术运算符 +
,因为 +
的优先级大于 =
而且 +=
右边的表达式先于赋值。
这意味着,上面的代码实际上被解释为:
int a = 1, b = 2, c = 3;
// 等价于 b += c; a += b;
b = b + c;
a = a + b;
因此,最终的结果是 a = 6
,b = 5
,c = 3
。
另外需要注意的是,连续赋值是一种常见的代码写法,但在实际开发中应尽量避免过度使用,以提高代码的可读性和可维护性。
示例
示例 1
int a = 1, b = 2, c = 3;
a += b += c;
Console.WriteLine($"a = {a}, b = {b}, c = {c}");
输出结果:
a = 6, b = 5, c = 3
示例 2
int x = 1, y = 2, z = 3;
x *= y += z *= 2;
Console.WriteLine($"x = {x}, y = {y}, z = {z}");
输出结果:
x = 7, y = 8, z = 6
总结
连续赋值是一种常见的代码写法,在理解赋值运算符的优先级的基础上可以轻松掌握。在实际开发中,应避免过度使用,以提高代码的可读性和可维护性。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:Question:基于C#连续赋值的面试题介绍 - Python技术站