อาร์เรย์เป็นโครงสร้างข้อมูลประเภทหนึ่งที่สามารถจัดเก็บคอลเล็กชันแบบต่อเนื่องที่มีขนาดคงที่ขององค์ประกอบประเภทเดียวกันได้
อาร์เรย์ใช้เพื่อจัดเก็บชุดข้อมูล แต่มักจะมีประโยชน์มากกว่าที่จะคิดว่าอาร์เรย์เป็นชุดของตัวแปรประเภทเดียวกัน
ข้อจำกัด
ข้อจำกัดของอาร์เรย์ได้อธิบายไว้ด้านล่าง -
-
อาร์เรย์ที่ก่อตัวขึ้นจะเป็นเนื้อเดียวกัน กล่าวคือในอาร์เรย์จำนวนเต็มสามารถเก็บค่าจำนวนเต็มได้เท่านั้นในขณะที่อาร์เรย์แบบลอยมีเพียงค่าลอยตัวและอาร์เรย์อักขระเท่านั้นที่สามารถมีได้เฉพาะอักขระ ดังนั้น ไม่มีอาร์เรย์ใดที่สามารถมีค่าของข้อมูลสองประเภทได้
-
ขณะประกาศอาร์เรย์ ขนาดการส่งผ่านของอาร์เรย์เป็นข้อบังคับ และขนาดต้องเป็นค่าคงที่ ดังนั้นจึงมีทั้งความจำเสื่อมหรือความจำเสื่อม
-
จำเป็นต้องมีการเลื่อนเพื่อแทรกหรือลบองค์ประกอบในอาร์เรย์
-
อาร์เรย์ไม่ตรวจสอบขอบเขต:ในภาษา C เราไม่สามารถตรวจสอบได้ว่าค่าที่ป้อนในอาร์เรย์เกินขนาดของอาร์เรย์นั้นหรือไม่
-
ข้อมูลที่ป้อนด้วยตัวห้อย เกินขนาดอาร์เรย์ และจะถูกวางไว้นอกอาร์เรย์ โดยทั่วไปแล้วจะอยู่ด้านบนของข้อมูลหรือตัวโปรแกรมเอง
-
สิ่งนี้จะนำไปสู่ผลลัพธ์ที่คาดเดาไม่ได้อย่างน้อยที่สุด นอกจากนี้ จะไม่มีข้อความแสดงข้อผิดพลาดเพื่อเตือนโปรแกรมเมอร์ให้เกินขนาดอาร์เรย์ ในบางกรณี โปรแกรมอาจค้าง
ดังนั้น โปรแกรมต่อไปนี้สามารถให้ผลลัพธ์ที่ไม่ต้องการได้ -
int a[10],i; for(i=0;i<=20;i++) a[i]=i;
ตัวอย่าง
ต่อไปนี้เป็นโปรแกรม C เพื่อแสดงผลรวมของสองอาร์เรย์ -
#include<stdio.h> void main(){ //Declaring array with compile time initialization// int array1[5],array2[5],sum[5]; //Declaring variables// int i; //Printing O/p using for loop// printf("Enter the values of array1 :\n"); for(i=0;i<5;i++){ printf("array1[%d] : \n",i); scanf("%d",&array1[i]); } printf("Enter the values of array2 :\n"); for(i=0;i<5;i++){ printf("array2[%d] :\n",i); scanf("%d",&array2[i]); } printf("Elements in the sum of array1 and array2 are:\n "); for(i=0;i<5;i++){ sum[i]=array1[i]+array2[i]; printf("%d ",sum[i]); } }
ผลลัพธ์
เมื่อโปรแกรมข้างต้นทำงาน มันจะให้ผลลัพธ์ดังต่อไปนี้ −
Enter the values of array1 : array1[0] :2 array1[1] :3 array1[2] :1 array1[3] :2 array1[4] :3 Enter the values of array2 : array2[0] :4 array2[1] :5 array2[2] :3 array2[3] :2 array2[4] :1 Elements in the sum of array1 and array2 are: 6 8 4 4 4