簡體   English   中英

C中數組內數組的增量

[英]Increment of array inside array in C

#include <stdio.h>

#define NUMBER 20                                         

#define OPTION 6 

void main ()
{

    int optionList[NUMBER]= 
        {4,4,5,2,1,3,1,0,4,3,3,1,2,5,4,2,3,4,3,1}; 

    int count[OPTION] = { 0 } ;

    for (int i = 0; i <= NUMBER-1; i++) 
        ++count[optionList[i]]; 
} 

我不明白++count[optionList[i]] 它是數組'count'和'optionList'的循環增量嗎? 它是如何工作的?

optionList - 是一個包含 20 個元素的數組
count - 是一個包含 6 個元素的數組

for循環遍歷i = 0到包括i = 20 - 1 = 19
在每個迭代步驟中,它執行++count[optionList[i]];

讓我們計算++count[optionList[i]]; 對於 i=3 一步一步:首先我們查看optionList[i] ,因此我們從optionList中獲取第 i 個元素。 optionList中的第三個元素(從 0 開始計數)是 2。因此++count[optionList[i]]的計算結果為++count[2] ++value表示將 value 后面的value加一。 ++count[2]表示count中的第二個元素加一。 所以在執行++count[optionList[i]]; 數組count現在看起來像這樣: {0, 0, 1, 0, 0, 0} (如果之前看起來像{0, 0, 0, 0, 0, 0}

結論

optionList視為索引數組。 循環在optionList中的每個索引處遞增count

如果您從“由內而外”的方式考慮這一點,則optionList[i]首先得到評估。 這將返回optionList[i]處的值

例如)如果i = 0optionList[i] = 4

然后count[{value}]被評估。

例如)如果i = 0optionList[i] = 4 在這種情況下, count[optionList[i]]count[4]相同。

因此, count數組中的第四個位置會增加前綴++ 循環本質上是遍歷並遞增由optionList[i]指定的每個位置的count數組的值。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM