我的理解或许和你的原意有所偏差。如果你的意思是创建一个知道内容的数组,但不指定它的大小,那语法是这样:
int arr[] = {1, 2, 3, 4, 5}; // 等同于 int arr[5] = {1, 2, 3, 4, 5};
如果你的意思是“可变大小”,或者在运行时才知道所需大小而编译时不知道,那要在堆上开辟内存:
int n;
scanf("&d", &n); // 运行时读入元素个数n
int *arr = (int *)malloc(sizeof (int) * n); // 申请一个大小为n的int数组
.... // 使用arr
free(arr); // 用完后记得释放内存