c語言如何定義可變長度數(shù)組 C語言,可變長數(shù)組?
C語言,可變長數(shù)組?我不會看冒泡排序的算法部分。我直接告訴你,你不知道錯誤的原因。你的第一種寫作方式:int n=1,a[n],I=0,j=0,k=0。這里定義了n=1,在這一行中還定義了[n]。然后
C語言,可變長數(shù)組?
我不會看冒泡排序的算法部分。我直接告訴你,你不知道錯誤的原因。你的第一種寫作方式:int n=1,a[n],I=0,j=0,k=0。這里定義了n=1,在這一行中還定義了[n]。然后編譯器將在這里直接為序列a分配內(nèi)存。也就是說,確定陣列A的大小,即1。我不知道你是否學(xué)會了內(nèi)存分配。我給你一個簡短的解釋。您可以在線搜索詳細信息。例如,一個具有五種整數(shù)類型的數(shù)組可以定義為[5],但也可以按如下方式獲得:int*a=(int*)malloc(sizeof(int)*5)也就是說,我們將內(nèi)存分配給一個指針以獲得一個數(shù)組。[5]的定義還要求編譯器在編譯程序時分配內(nèi)存。編譯器將根據(jù)您的代碼優(yōu)化您的程序,并將代碼轉(zhuǎn)換為匯編代碼。另外,機器代碼說得太多了。我將繼續(xù)分析修改后的代碼int n=1,I=0,j=0,K=0printf(“please input the length of the array:”)scanf(%d“,&n)int a[n];//此時,由于您在聲明數(shù)組之前讀入了n,因此a是根據(jù)您輸入的數(shù)字確定的數(shù)組大小。你知道我的意思嗎?
如何聲明可變長度的數(shù)組,C語言?
C99標準中增加了可變長度陣列。你的編譯器無法使用它。它只能解釋它不支持C99的這個功能
以前的C99版本沒有這個功能。數(shù)組的大小必須是常量或常量表達式。只有在C99版本中才能添加可變長度數(shù)組