Computer >> คอมพิวเตอร์ >  >> การเขียนโปรแกรม >> การเขียนโปรแกรม 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("\nArray a:\n");
   for( i=0; i<4; i++ )
      printf("arr[%d]: %d\n",i,a[i]);
   printf("\nArray b:\n");
   for( i=0; i<4; i++)
      printf("arr[%d]: %d\n",i,b[i]);
   printf("\nArray c:\n");
   for( i=0; i<4; i++ )
      printf("arr[%d]: %d\n",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("\nArray a:\n");
   for( i=0; i<4; i++ )
      printf("arr[%d]: %d\n",i,A[i]);
   printf("\nArray b:\n");
   for( i=0; i<4; i++)
      printf("arr[%d]: %d\n",i,B[i]);
   printf("\nArray c:\n");
   for( i=0; i<4; i++ )
      printf("arr[%d]: %d\n",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