数组的单个括号中的嵌套索引

问题描述 投票:0回答:1

我从未见过这样的东西,我已经读过数组。数组在一个括号中有2个索引,一个索引嵌套在另一个括号中:

printf("%d ", arr[chosen[i]]); 

我不知道会发生什么,如果方括号内有2个索引。

整个代码在这里:https://www.geeksforgeeks.org/combinations-with-repetitions/

c arrays indices
1个回答
0
投票

直接使用称为intchosen数组建立索引。

printf("%d ", arr[chosen[i]]); 

或首先通过保存值间接建立索引,是相同的。

int idx = chosen[i];
printf("%d ", arr[idx]); 

0
投票

您只需要一次分解代码。

chosenarr都声明为整数数组;因此,从“由内而外”的工作,我们首先评估chosen[i]-这将是chosen给定位置(索引)处数组i的(整数)元素。

我们将此值称为chosen_int

然后我们可以将arr[chosen[i]]表达式重写为arr[chosen_int]-将是数组arr的(整数)元素,位于我们先前(内部)表达式给定的索引值处。

这可能有助于明确地写出我们刚刚完成的工作,用以下代码替换“令人困惑的”单行代码:

int chosen_int = chosen[i];
printf("%d ", arr[chosen_int]);

随时要求进一步的澄清和/或解释。

© www.soinside.com 2019 - 2024. All rights reserved.