在C語言中,如果使用未初始化的陣列,程式會被執行嗎?
如果我們使用任何未初始化的數組,編譯器將不會產生任何編譯和執行錯誤。
如果陣列未初始化,您可能會得到不可預測的結果。
因此,我們最好始終使用預設值初始化陣列元素。
以下是存取未初始化陣列的C 程式-
現場示範
#include <stdio.h> int main(void){ int a[4]; int b[4] = {1}; int c[4] = {1,2,3,4}; int i; //for loop counter //printing all alements of all arrays printf("</p><p>Array a:</p><p>"); for( i=0; i<4; i++ ) printf("arr[%d]: %d</p><p>",i,a[i]); printf("</p><p>Array b:</p><p>"); for( i=0; i<4; i++) printf("arr[%d]: %d</p><p>",i,b[i]); printf("</p><p>Array c:</p><p>"); for( i=0; i<4; i++ ) printf("arr[%d]: %d</p><p>",i, c[i]); return 0; }
#當執行上述程式時,會產生以下結果-
Array a: arr[0]: 4195872 arr[1]: 0 arr[2]: 4195408 arr[3]: 0 Array b: arr[0]: 1 arr[1]: 0 arr[2]: 0 arr[3]: 0 Array c: arr[0]: 1 arr[1]: 2 arr[2]: 3 arr[3]: 4
如果我們沒有初始化數組,預設情況下,它會列印垃圾值並且永遠不會顯示錯誤。
考慮另一個C 程式來存取未初始化的陣列-
現場示範
#include <stdio.h> int main(void){ int A[4]; int B[4] ; int C[4] = {1,2}; int i; //for loop counter //printing all alements of all arrays printf("</p><p>Array a:</p><p>"); for( i=0; i<4; i++ ) printf("arr[%d]: %d</p><p>",i,A[i]); printf("</p><p>Array b:</p><p>"); for( i=0; i<4; i++) printf("arr[%d]: %d</p><p>",i,B[i]); printf("</p><p>Array c:</p><p>"); for( i=0; i<4; i++ ) printf("arr[%d]: %d</p><p>",i, C[i]); return 0; }
當執行上述程式時,會產生以下結果-
Array a: arr[0]: 4195856 arr[1]: 0 arr[2]: 4195408 arr[3]: 0 Array b: arr[0]: -915120393 arr[1]: 32767 arr[2]: 0 arr[3]: 0 Array c: arr[0]: 1 arr[1]: 2 arr[2]: 0 arr[3]: 0
以上是解釋C語言中未初始化數組存取的概念的詳細內容。更多資訊請關注PHP中文網其他相關文章!