-4

我有一本书中的这个示例程序,在这段代码中有一行 ++frequency[responses[RESPOSE_SIZE]];. 我无法理解我们如何增加数组基地址?我可能是个傻瓜吗?但我仍然没有看到任何逻辑......请有人帮助我......谢谢!

    int main()
    {
          int answer, rating;

           int frequency[FREQUENCY_SIZE] = {5};

           int responses[RESPOSE_SIZE] ={1,2,3,4,5,6,7,8,9,10,

                1,6,3,8,6,10,3,8,2,7,6,5,7,6,8,6,7,5,6,6, 

                5,6,7,5,6,4,8,6,8,10};

       for(answer = 0; answer<RESPOSE_SIZE; answer++)
       {

          ++frequency[responses[RESPOSE_SIZE]];
       }

       printf( "%s%17s\n", "Rating", "Frequency" );

       for(rating=1; rating<FREQUENCY_SIZE; rating++)
       {
          printf( "%6d%17d\n", rating, frequency[ rating ] );

       }

        return 0;
    }
4

2 回答 2

3

++frequency[responses[RESPOSE_SIZE]]并不意味着数组的基地址递增。

这意味着数组中的项目frequency从位置开始responses[RESPONSE_SIZE]递增。构造是来自 positionresponses[RESPONSE_SIZE]的数组中的项目。responsesRESPONSE_SIZE

于 2013-03-02T07:22:37.823 回答
0

索引运算符的[]优先级高于++前缀增量运算符。所以前缀递增操作是应用于索引后找到的数组元素,而不是数组基地址。

于 2013-03-02T07:30:29.093 回答