【发布时间】:2020-12-24 05:17:13
【问题描述】:
#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'的循环增量吗?它是如何工作的?
【问题讨论】:
-
分解:
int x = optionList[i],然后是++count[x]本质上optionList在这里用作将值0...19映射到0...5的查找表 -
OT:您可以使用
i < NUMBER,而不是使用循环条件i <= NUMBER-1。后者比较常见,所以更多的人会立即认出它并理解它,并且写的更少。 -
这条语句
++count[optionList[i]];增加了count数组中的值。它根本不是一个“循环增量”——i++是一个循环增量。另外:main不是void——它意味着返回一个int -
关于:
void main ()不管不符合的编译器可能允许什么,main()只有两个有效签名,它们是:int main( void )和int main( int argc, char *argv[] )