我从未见过这样的东西,我已经读过数组。数组在一个括号中有2个索引,一个索引嵌套在另一个括号中:
printf("%d ", arr[chosen[i]]);
我不知道会发生什么,如果方括号内有2个索引。
整个代码在这里:https://www.geeksforgeeks.org/combinations-with-repetitions/
直接使用称为int
的chosen
数组建立索引。
printf("%d ", arr[chosen[i]]);
或首先通过保存值间接建立索引,是相同的。
int idx = chosen[i];
printf("%d ", arr[idx]);
您只需要一次分解代码。
chosen
和arr
都声明为整数数组;因此,从“由内而外”的工作,我们首先评估chosen[i]
-这将是chosen
给定位置(索引)处数组i
的(整数)元素。
我们将此值称为chosen_int
。
然后我们可以将arr[chosen[i]]
表达式重写为arr[chosen_int]
-将是数组arr
的(整数)元素,位于我们先前(内部)表达式给定的索引值处。
这可能有助于明确地写出我们刚刚完成的工作,用以下代码替换“令人困惑的”单行代码:
int chosen_int = chosen[i]; printf("%d ", arr[chosen_int]);
随时要求进一步的澄清和/或解释。