배열은 동일한 유형의 요소를 고정 크기로 순차적으로 수집할 수 있는 일종의 데이터 구조입니다.
배열은 데이터 모음을 저장하는 데 사용되지만 종종 배열을 같은 유형의 변수 모음으로 생각하는 것이 더 유용합니다.
제한 사항
배열의 한계는 아래에 설명되어 있습니다 -
-
형성된 어레이는 균질할 것입니다. 즉, 정수 배열에서는 정수 값만 저장할 수 있고, 부동 소수점 배열에서는 부동 값과 문자 배열만 문자만 가질 수 있습니다. 따라서 어떤 배열도 두 가지 데이터 유형의 값을 가질 수 없습니다.
-
배열 선언 시 배열의 크기 전달은 필수이며 크기는 일정해야 합니다. 따라서 메모리가 부족하거나 낭비됩니다.
-
배열의 요소를 삽입하거나 삭제하려면 이동이 필요합니다.
-
배열은 경계를 확인하지 않습니다. 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