我是 C 初学者,我有这样的代码:
#include <stdio.h>
main()
{
int i;
int ndigit[10] = { [9] = 5 };
printf("%d\n",++ndigit['9']);
}
这会打印如下值:
-1074223011
但是当我将语句更改为:
++ndigit['9'-'0']
它正确打印了值
6
我想知道为什么需要添加-0
在我的索引中以使其正常工作?为什么只是提到++ndigit['9']
,对我没有帮助吗?
提前致谢。
如果你想访问数组中的第 10 个元素,你可以:
array[9]
如果要访问索引处具有数字字符常量值的元素9
+ 1,你做:
array['9']
由于 ASCII(以及 C 使用的所有其他字符编码方案,请参阅 Wiz 的注释)的定义方式,表达式'9' - '0'
实际上等于 9,在这种情况下这可能会让您感到困惑。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)