【问题标题】:increment array index left side of assignment operator增加赋值运算符左侧的数组索引
【发布时间】:2021-12-17 07:15:35
【问题描述】:
int[] array = new int[]{ 1, 2, 3 };
int i = 1;
array[i++] = array[i]+5;
   
var result = string.Join(",", array);
Console.WriteLine(result);

你能解释一下如何在第三排工作吗?我的意思是为什么答案是 1,8,3

【问题讨论】:

  • i++ 表示使用i 的值,然后添加一个,以便下次使用时,将是一个新值。所以数组索引 1 中的值被设置为数组索引 2 + 5 的值。
  • 所以顺序是这样的吧? =>1)设置索引值(即i=1),2)增加i值(i=2),3)将5添加到数组[2] =8。

标签: c# arrays indexing operator-keyword unary-operator


【解决方案1】:

您的代码可以翻译成:

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 的意思是:在使用之前增加它。

【讨论】:

  • 感谢详细解释
猜你喜欢
  • 2015-06-12
  • 2017-07-16
  • 2016-06-08
  • 2016-08-20
  • 1970-01-01
  • 1970-01-01
  • 2023-04-10
  • 2016-06-23
相关资源
最近更新 更多