如果分配可以多次完成,那么为什么它会显示错误.如果相同的代码在main中,则没有显示错误.
#include <stdio.h>
int arr[2]; // array elements are initialized as zero
arr[0]=5;
arr[1]=10;
int main()
{
return 0;
}
Run Code Online (Sandbox Code Playgroud)
这两行
arr[0]=5; // Assignment. Not initialization.
arr[1]=10; // Assignment. Not initialization.
Run Code Online (Sandbox Code Playgroud)
是无法在函数外执行的语句.在全球空间中,只有声明和定义是有效的.
int arr[2];
Run Code Online (Sandbox Code Playgroud)
是一个定义,它是有效的.Brace初始值设定项可用于初始化arr所需的值
int arr[2] = {5, 10};
Run Code Online (Sandbox Code Playgroud)