1. 程式人生 > 其它 >陣列初始化時的陷阱

陣列初始化時的陷阱

技術標籤:c語言

#陣列初始化時的陷阱

陣列簡單初始化

int arr[]={0};
int buf[10]={0};

下面這種不進行初始化時編譯通過

int n;
sacnf("%d",&n);
int arr[n];
int n=10;
int arr[n];

但進行初始化時就會報錯

int n;
sacnf("%d",&n);
int arr[n]={0};

在這裡插入圖片描述

int n=10;
int arr[n]={0};

在這裡插入圖片描述
意思是可變長的陣列不能被初始化,也就是說,n是變數,不能再定義陣列時對陣列內的元素初始化,想要初始化需要限定陣列的範圍

int n=10;
int arr[n];
for(int i=0;i<n;i++)
{
	arr[i]=0;
}

這樣才能對陣列中的元素初始化