在 GNU c99 手册中:
3.13 数组下标
您可以通过指定数组的名称和括在括号中的数组下标(或索引或元素编号)来访问数组元素。下面是一个示例,假设有一个名为 my_array 的整数数组:
my_array[0] = 5;数组下标表达式 A[i] 被定义为与表达式 (*((A)+(i))) 相同。这意味着数组名称的许多用途等同于指针表达式。这也 意味着您不能为具有寄存器存储 类的数组下标。
我已经尝试过以下事情,对我来说效果很好。
#include <stdio.h>
int main()
{
register int arr[10] = {1, [9] = 6};
printf("arr[9] %d\n", *((arr) + 9)); // working fine
printf("arr[9] %d\n", arr[9]); //working fine
return 0;
}
有人可以解释一下粗体字是什么意思吗?或者我试图错误地验证它。