logo

C 배열

배열은 인접한 메모리 위치에 저장된 유사한 유형의 데이터 항목 모음으로 정의됩니다. 배열은 int, char, double, float 등과 같은 기본 데이터 유형을 저장할 수 있는 C 프로그래밍 언어의 파생 데이터 유형입니다. 또한 포인터, 구조, 데이터와 같은 파생 데이터 유형의 컬렉션을 저장할 수 있는 기능도 있습니다. 배열은 인덱스 번호를 사용하여 각 데이터 요소에 무작위로 액세스할 수 있는 가장 간단한 데이터 구조입니다.

유사한 요소를 저장해야 하는 경우 C 배열이 유용합니다. 예를 들어, 학생의 성적을 6개 과목에 저장하려는 경우 다른 과목의 성적에 대해 다른 변수를 정의할 필요가 없습니다. 그 대신, 인접한 메모리 위치에 각 주제의 마크를 저장할 수 있는 배열을 정의할 수 있습니다.

배열을 사용하면 요소에 쉽게 접근할 수 있습니다. 배열의 요소에 액세스하려면 몇 줄의 코드만 필요합니다.

어레이의 속성

배열에는 다음 속성이 포함되어 있습니다.

  • 배열의 각 요소는 동일한 데이터 유형이고 동일한 크기를 갖습니다(예: int = 4바이트).
  • 배열의 요소는 첫 번째 요소가 가장 작은 메모리 위치에 저장되는 연속 메모리 위치에 저장됩니다.
  • 주어진 기본 주소와 데이터 요소의 크기를 사용하여 배열의 각 요소의 주소를 계산할 수 있으므로 배열의 요소에 무작위로 액세스할 수 있습니다.

C 어레이의 장점

1) 코드 최적화 : 데이터에 액세스하는 데 필요한 코드가 적습니다.

2) 이동의 용이성 : for 루프를 사용하면 배열의 요소를 쉽게 검색할 수 있습니다.

3) 분류의 용이성 : 배열의 요소를 정렬하려면 몇 줄의 코드만 필요합니다.

4) 랜덤 액세스 : 배열을 사용하여 임의의 요소에 무작위로 액세스할 수 있습니다.

C 어레이의 단점

1) 고정 크기 : 배열 선언 시 정의한 크기에 관계없이 제한을 초과할 수 없습니다. 따라서 나중에 배우게 될 LinkedList처럼 동적으로 크기가 커지지 않습니다.

C 배열 선언

C 언어에서는 다음과 같은 방법으로 배열을 선언할 수 있습니다.

 data_type array_name[array_size]; 

이제 배열을 선언하는 예를 살펴보겠습니다.

 int marks[5]; 

여기서 int는 데이터 형식 , 마크는 배열_이름 , 그리고 5는 array_size .

C 배열 초기화

배열을 초기화하는 가장 간단한 방법은 각 요소의 인덱스를 사용하는 것입니다. 인덱스를 사용하여 배열의 각 요소를 초기화할 수 있습니다. 다음 예를 고려하십시오.

자바의 스캐너
 marks[0]=80;//initialization of array marks[1]=60; marks[2]=70; marks[3]=85; marks[4]=75; 
C언어 배열 초기화

C 배열 예

 #include int main(){ int i=0; int marks[5];//declaration of array marks[0]=80;//initialization of array marks[1]=60; marks[2]=70; marks[3]=85; marks[4]=75; //traversal of array for(i=0;i<5;i++){ printf('%d 
',marks[i]); } end of for loop return 0; < pre> <p> <strong>Output</strong> </p> <pre> 80 60 70 85 75 </pre> <h2>C Array: Declaration with Initialization</h2> <p>We can initialize the c array at the time of declaration. Let&apos;s see the code.</p> <pre> int marks[5]={20,30,40,50,60}; </pre> <p>In such case, there is <strong>no requirement to define the size</strong> . So it may also be written as the following code.</p> <pre> int marks[]={20,30,40,50,60}; </pre> <p>Let&apos;s see the C program to declare and initialize the array in C.</p> <pre> #include int main(){ int i=0; int marks[5]={20,30,40,50,60};//declaration and initialization of array //traversal of array for(i=0;i<5;i++){ printf('%d 
',marks[i]); } return 0; < pre> <p> <strong>Output</strong> </p> <pre> 20 30 40 50 60 </pre> <h2>C Array Example: Sorting an array</h2> <p>In the following program, we are using bubble sort method to sort the array in ascending order.</p> <pre> #include void main () { int i, j,temp; int a[10] = { 10, 9, 7, 101, 23, 44, 12, 78, 34, 23}; for(i = 0; i<10; i++) { for(j="i+1;" j a[i]) temp="a[i];" a[i]="a[j];" a[j]="temp;" } printf('printing sorted element list ...
'); for(i="0;" i<10; printf('%d
',a[i]); < pre> <h2>Program to print the largest and second largest element of the array.</h2> <pre> #include void main () { int arr[100],i,n,largest,sec_largest; printf(&apos;Enter the size of the array?&apos;); scanf(&apos;%d&apos;,&amp;n); printf(&apos;Enter the elements of the array?&apos;); for(i = 0; i<n; i++) { scanf('%d',&arr[i]); } largest="arr[0];" sec_largest="arr[1];" for(i="0;ilargest)" else if (arr[i]>sec_largest &amp;&amp; arr[i]!=largest) { sec_largest=arr[i]; } } printf(&apos;largest = %d, second largest = %d&apos;,largest,sec_largest); } </n;></pre> <hr></10;></pre></5;i++){></pre></5;i++){>

C 배열: 초기화 선언

선언 시 c 배열을 초기화할 수 있습니다. 코드를 보자.

 int marks[5]={20,30,40,50,60}; 

그런 경우에는 크기를 정의할 필요가 없습니다. . 따라서 다음과 같은 코드로 작성할 수도 있습니다.

 int marks[]={20,30,40,50,60}; 

C에서 배열을 선언하고 초기화하는 C 프로그램을 살펴보겠습니다.

 #include int main(){ int i=0; int marks[5]={20,30,40,50,60};//declaration and initialization of array //traversal of array for(i=0;i<5;i++){ printf(\'%d 
\',marks[i]); } return 0; < pre> <p> <strong>Output</strong> </p> <pre> 20 30 40 50 60 </pre> <h2>C Array Example: Sorting an array</h2> <p>In the following program, we are using bubble sort method to sort the array in ascending order.</p> <pre> #include void main () { int i, j,temp; int a[10] = { 10, 9, 7, 101, 23, 44, 12, 78, 34, 23}; for(i = 0; i<10; i++) { for(j="i+1;" j a[i]) temp="a[i];" a[i]="a[j];" a[j]="temp;" } printf(\'printing sorted element list ...
\'); for(i="0;" i<10; printf(\'%d
\',a[i]); < pre> <h2>Program to print the largest and second largest element of the array.</h2> <pre> #include void main () { int arr[100],i,n,largest,sec_largest; printf(&apos;Enter the size of the array?&apos;); scanf(&apos;%d&apos;,&amp;n); printf(&apos;Enter the elements of the array?&apos;); for(i = 0; i<n; i++) { scanf(\'%d\',&arr[i]); } largest="arr[0];" sec_largest="arr[1];" for(i="0;ilargest)" else if (arr[i]>sec_largest &amp;&amp; arr[i]!=largest) { sec_largest=arr[i]; } } printf(&apos;largest = %d, second largest = %d&apos;,largest,sec_largest); } </n;></pre> <hr></10;></pre></5;i++){>

C 배열 예: 배열 정렬

다음 프로그램에서는 버블 정렬 방법을 사용하여 배열을 오름차순으로 정렬합니다.

 #include void main () { int i, j,temp; int a[10] = { 10, 9, 7, 101, 23, 44, 12, 78, 34, 23}; for(i = 0; i<10; i++) { for(j="i+1;" j a[i]) temp="a[i];" a[i]="a[j];" a[j]="temp;" } printf(\'printing sorted element list ...
\'); for(i="0;" i<10; printf(\'%d
\',a[i]); < pre> <h2>Program to print the largest and second largest element of the array.</h2> <pre> #include void main () { int arr[100],i,n,largest,sec_largest; printf(&apos;Enter the size of the array?&apos;); scanf(&apos;%d&apos;,&amp;n); printf(&apos;Enter the elements of the array?&apos;); for(i = 0; i<n; i++) { scanf(\'%d\',&arr[i]); } largest="arr[0];" sec_largest="arr[1];" for(i="0;ilargest)" else if (arr[i]>sec_largest &amp;&amp; arr[i]!=largest) { sec_largest=arr[i]; } } printf(&apos;largest = %d, second largest = %d&apos;,largest,sec_largest); } </n;></pre> <hr></10;>