首頁 >後端開發 >C++ >解釋C語言中未初始化數組存取的概念

解釋C語言中未初始化數組存取的概念

王林
王林轉載
2023-09-01 20:53:051134瀏覽

解釋C語言中未初始化數組存取的概念

問題

在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中文網其他相關文章!

陳述:
本文轉載於:tutorialspoint.com。如有侵權,請聯絡admin@php.cn刪除