배열은 동일한 유형의 요소를 고정된 크기로 순차적으로 수집할 수 있는 데이터 구조입니다.
배열은 데이터 모음을 저장하는 데 사용되지만 배열을 동일한 유형의 변수 모음으로 생각하는 것이 더 유용합니다.
다음은 배열의 제한 사항입니다.
형성된 배열은 동질적입니다. 즉, 정수 배열에는 정수 값만 저장할 수 있고, 부동 소수점 배열에는 부동 소수점 값만 저장할 수 있으며, 문자 배열에는 문자만 저장할 수 있습니다. 따라서 배열은 두 데이터 유형의 값을 동시에 가질 수 없습니다.
배열을 선언할 때 배열의 크기를 반드시 전달해야 하며 크기는 상수여야 합니다. 따라서 메모리가 부족하거나 낭비될 수 있습니다.
배열에서 요소를 삽입하거나 삭제할 때 Shift 작업이 필요합니다.
배열은 범위를 확인하지 않습니다. C 언어에서는 배열에 입력된 값이 배열의 크기를 초과하는지 여부를 확인할 수 없습니다.
아래 첨자를 사용하여 입력한 데이터가 배열 크기를 초과하여 배열 외부에 배치됩니다. 일반적으로 데이터나 프로그램 자체 위에 있습니다.
이렇게 하면 최소한 예측할 수 없는 결과가 발생하게 됩니다. 또한 프로그래머에게 배열 크기가 초과되었음을 경고하는 오류 메시지도 없습니다. 어떤 경우에는 프로그램이 중단될 수 있습니다.
따라서 다음 프로그램은 바람직하지 않은 결과를 초래할 수 있습니다.
int a[10],i; for(i=0;i<=20;i++) a[i]=i;
다음은 두 배열의 합을 표시하는 C 프로그램입니다.
Live Demonstration
#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 :</p><p>"); for(i=0;i<5;i++){ printf("array1[%d] : </p><p>",i); scanf("%d",&array1[i]); } printf("Enter the values of array2 :</p><p>"); for(i=0;i<5;i++){ printf("array2[%d] :</p><p>",i); scanf("%d",&array2[i]); } printf("Elements in the sum of array1 and array2 are:</p><p> "); 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
위 내용은 C 언어 배열의 한계는 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!