为什么全局数组必须指定长度?
程序代码:
#include "stdafx.h" /*筛法求100之内素数*/ #include "stdafx.h" #include<iostream> using namespace std; void cut(); int a[];//换成a[100],就可以通过编译 int main() { int i; for(i=0;i<100;i++) a[i]=i+1; cut(); int k; for (i=0,k=0;i<100;i++) { if(a[i]!=0) { if(k%5==0)cout<<endl; cout<<a[i]<<" "; k=k+1; } } return 0; } void cut() { int i,k; a[0]=0; for(i=2;i<100;i++) { if(a[i]!=0) { for(k=i+1;k<100;k++) if(a[k]%a[i]==0)a[k]=0; } } }我在以上程序中定义了一个一维的int数组a,未指定长度。编译时系统提示:1>asd.obj : error LNK2001: 无法解析的外部符号 "int * a" (?a@@3PAHA)
指定a的长度为100后则编译通过
为什么?求解释!