我是C的初学者,我有这样的代码:
#include <stdio.h>
main()
{
int i;
int ndigit[10] = { [9] = 5 };
printf("%d\n",++ndigit['9']);
}
Run Code Online (Sandbox Code Playgroud)
这打印的值如下:
-1074223011
Run Code Online (Sandbox Code Playgroud)
但是,当我将声明更改为:
++ndigit['9'-'0']
Run Code Online (Sandbox Code Playgroud)
它正确打印该值
6
Run Code Online (Sandbox Code Playgroud)
我想知道为什么需要添加-0我的索引以使其正常工作?为什么只提++ndigit['9'],不帮我?
提前致谢.
如果要访问数组中的第10个元素,请执行以下操作:
array[9]
Run Code Online (Sandbox Code Playgroud)
如果要访问索引处的元素,该元素具有数字9+ 1 的字符常量值,则执行以下操作:
array['9']
Run Code Online (Sandbox Code Playgroud)
由于定义了ASCII(以及C使用的所有其他字符编码方案,请参阅Wiz的注释),表达式'9' - '0'实际上等于9,这可能会使您在这种情况下感到困惑.
| 归档时间: |
|
| 查看次数: |
413 次 |
| 最近记录: |