void test(int x[static 10]);
int main()
{
int a[]={1,2,3,4,5,6,7,8,9,10,11};
test(a);
return 0;
}
void test(int x[static 10])
{
printf("%d",x[9]);
}
我一直在寻找奇异的C语句。我发现了这个,但无法理解该语句中static 10
的用法是什么。是否与int x[10]
相同?
另一方面,您也可以使用volatile
代替static
例如int x[volatile 10]
有谁知道这种声明的用途是什么?
PS:使用GCC 4.6.3编译,
答案 0 :(得分:5)
它提示编译器告诉x
指针参数指向至少10
个元素的数组的第一个元素。
例如:
test(NULL); // undefined behavior