C:无法理解下面的数组赋值

标签 c arrays

问题说明了一切:

...
int ndigit[10];
...//fill in the array with 0s

while((c = getchar()) != EOF)
    if(c >= '0' && c <= '9')
         ++ndigit[c - '0']; //<== unable to understand this part

据推测,该数组存储来自输入流的传入数字字符...

最佳答案

在 C 中,您可以使用字符代码对字符进行算术运算。所以这确保你有一个数字,找出它是哪个数字(通过测量它与零的差异)然后在数组中的相应位置增加一个计数。完成后,ndigit[0] 将包含 '0' 的出现次数,ndigit[1] 将包含出现的次数'1',依此类推。

关于C:无法理解下面的数组赋值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1290884/

相关文章:

c - 将链表表示的两个整数相加

c++ - 从调用堆栈中获取函数名

c - 长度为4-20的数组?

php - 多个foreach处理嵌套数组——PHP CodeIgniter

javascript - JS/JQuery : continue with the index of array of the form while generating new fields

javascript - 在求和值时组合数组数组的唯一项 - JS/lodash

条件检查 scanf () 或获取输入

c - 在函数调用的参数内部定义新函数、数组、结构等

javascript - JavaScript 中的 eval 方法

Javascript:相邻元素乘积算法