我目前正在阅读K& R书。第22页,数组1.6
int c, i, nwhite, nother;
int ndigit[10];
nwhite = nother = 0;
for (i = 0; i <10; ++i)
ndigit[i] = 0;
while ((c = getchar()) != EOF)
if(c >= '0' && c<= '9')
++ndigit[c-'0'];
else if (c == ' ' || c == '\n' || c == '\t')
++nwhite;
else
++nother;
printf("digits =");
for(i = 0; i < 10; ++i)
printf(" %d", ndigit[i]);
printf(", white space = %d, other = %d\n", nwhite, nother);
它说字符被认为是整数。我尝试删除&#39; 0&#39; 0在第一个如果声明。但是,阵列停止工作。如果字符被认为是整数,为什么&#39; 0&#39;程序运行正常所需
答案 0 :(得分:0)
字符是数字,但'0'
不是 0
,但(在大多数情况下)48
,{{1} } 不是 '1'
但是(在大多数情况下)1
,依此类推。