递增赋值运算符左侧的数组索引
increment array index left side of assignment operator
int[] array = new int[]{ 1, 2, 3 };
int i = 1;
array[i++] = array[i]+5;
var result = string.Join(",", array);
Console.WriteLine(result);
你能解释一下第 3 行的工作原理吗?我的意思是为什么答案是 1,8,3
您的代码可以翻译成:
int[] array = new int[]{ 1, 2, 3 };
int i = 1;
array[1] = array[2]+5;
因为 i++
的意思是:使用 i
的旧值然后将其递增 1。因此在赋值 array[i]+5
时,i
将具有新值2.
如果您改为使用 ++i
,它将“翻译”为:
array[2] = array[2]+5;
因为++i
意味着:在你使用它之前增加它。
int[] array = new int[]{ 1, 2, 3 };
int i = 1;
array[i++] = array[i]+5;
var result = string.Join(",", array);
Console.WriteLine(result);
你能解释一下第 3 行的工作原理吗?我的意思是为什么答案是 1,8,3
您的代码可以翻译成:
int[] array = new int[]{ 1, 2, 3 };
int i = 1;
array[1] = array[2]+5;
因为 i++
的意思是:使用 i
的旧值然后将其递增 1。因此在赋值 array[i]+5
时,i
将具有新值2.
如果您改为使用 ++i
,它将“翻译”为:
array[2] = array[2]+5;
因为++i
意味着:在你使用它之前增加它。