>백엔드 개발 >C++ >C 언어 배열의 한계는 무엇입니까?

C 언어 배열의 한계는 무엇입니까?

王林
王林앞으로
2023-08-25 17:21:171836검색

C 언어 배열의 한계는 무엇입니까?

배열은 동일한 유형의 요소를 고정된 크기로 순차적으로 수집할 수 있는 데이터 구조입니다.

배열은 데이터 모음을 저장하는 데 사용되지만 배열을 동일한 유형의 변수 모음으로 생각하는 것이 더 유용합니다.

제한 사항

다음은 배열의 제한 사항입니다.

  • 형성된 배열은 동질적입니다. 즉, 정수 배열에는 정수 값만 저장할 수 있고, 부동 소수점 배열에는 부동 소수점 값만 저장할 수 있으며, 문자 배열에는 문자만 저장할 수 있습니다. 따라서 배열은 두 데이터 유형의 값을 동시에 가질 수 없습니다.

  • 배열을 선언할 때 배열의 크기를 반드시 전달해야 하며 크기는 상수여야 합니다. 따라서 메모리가 부족하거나 낭비될 수 있습니다.

  • 배열에서 요소를 삽입하거나 삭제할 때 Shift 작업이 필요합니다.

  • 배열은 범위를 확인하지 않습니다. C 언어에서는 배열에 입력된 값이 배열의 크기를 초과하는지 여부를 확인할 수 없습니다.

  • 아래 첨자를 사용하여 입력한 데이터가 배열 크기를 초과하여 배열 외부에 배치됩니다. 일반적으로 데이터나 프로그램 자체 위에 있습니다.

  • 이렇게 하면 최소한 예측할 수 없는 결과가 발생하게 됩니다. 또한 프로그래머에게 배열 크기가 초과되었음을 경고하는 오류 메시지도 없습니다. 어떤 경우에는 프로그램이 중단될 수 있습니다.

따라서 다음 프로그램은 바람직하지 않은 결과를 초래할 수 있습니다.

int a[10],i;
for(i=0;i<=20;i++)
a[i]=i;

Example

다음은 두 배열의 합을 표시하는 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]);
   }
}

Output

위 프로그램이 실행될 때 , 다음 결과를 생성합니다 −

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 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
이 기사는 tutorialspoint.com에서 복제됩니다. 침해가 있는 경우 admin@php.cn으로 문의하시기 바랍니다. 삭제