gpt4 book ai didi

c - 在数组的这个索引中减去有什么意义?

转载 作者:太空宇宙 更新时间:2023-11-04 00:27:10 25 4
gpt4 key购买 nike

main()
{
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);


}

这样的索引有什么意义? ++ndigit[c-'0'];与此相反:++ndigit[c];还是我完全看错了?

最佳答案

0 的 ASCII 字符不是实际的零字节 \0。因此,如果您执行 a['0'],您实际上会执行 a[48](在 ASCII 系统上),因此减去 '0 ' 将数字转换为整数值。

关于c - 在数组的这个索引中减去有什么意义?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5055096/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com