2010. 7. 10. 02:03

제 14장 1차원 배열 - 1



※ 문법을 100% 이해하려면, 실습을 거쳐야 완벽한 100% 이해완성
   - 최소한의 연습문제등 문제를 풀어봄으로써 응용력을 키운다.


 배열이란 무엇인가?

  - 두개 이상의 변수를 동시에 선언하는 효과를 지닌다

  - 많은 양의 데이타를 일괄적으로 처리할 수 있다.
   > 예를 들자면 
     for(i=0; i<10; i++)
     Array[i] = 1; // 모든 데이타형을 1로 초기화 한다. 

     // 변수 10개를 일일이 만들필요없이 배열로 선언해서 
     // 편리하게 일괄적으로 처리가 가능한다.

  - 지역적 특성, 전역적 특성 둘다 가짐



 배열 선언에 있어서 필요한 3가지

 - 배열길이 : 배열을 구성하는 변수의 개수(반드시 상수사용)
 
 - 배열 요소 자료형 : 배열을 구성하는 변수의 자료형

 - 배열의 이름 : 배열을 접근할 때 사용되는 이름

 ▼ 정 의 
 int Array[10];
 // int형 데이타형 10개를 저장할수 있는 Array라는 이름의 배열

 - int : 배열 요소 자료형
 - [10] : 배열길이
 - Array : 배열이름
 ==> 4byte(int형) 메모리 10개를 가지는 즉, 40바이트가 할당된다.
 ==> 이 메모리공간의 이름은 Array 라고 한다.

 char A[5];
 // char형 테이타형을 5개 저장할수 있는 A라는 이름의 배열
 // 총 메모리 크기 char형[1byte] X 5개 = 5byte

tip >  마찬가지로 배열도 함수가 호출되었을때 함수내에 정의되어 있으면
         변수와 마찬가지로 메모리공간이 생기고, 함수가 종료되면 메모리가 소멸된다.



 1차원 배열의 접근
  - 인덱스 : 배열요소의 위치를 표현
  - 인덱스는 무조건 0부터 시작한다.
 
총 10개의 데이타를 저장할수 있는 메모리공간
저 하나하나의 데이타를 참조할때는, 하나하나 접근해야한다.


@ index[인덱스] : 기준을 대상으로 얼마나 멀리 떨어져있냐[거리]
 - 기준은 0이다.

 ▼ 접근하는 방법 : 

 - Array[5] : Array배열에 있는 5번째 위치에 해당하는 요소에 접근

 - index 값이 첫번째는 0이다.
   ex) int Array[10] : 마지막요소의 인데스값은 9이다.
   ex) int Array[5] : 마지막요소의 3번째 인데스값은 2이다.

 - Array[3] = 10 // Array배열의 3번째 인덱스에 10을 저장한다.
 
 int main()
{
int Array[10];
Array[0] = 1;
Array[1] = 2;
Array[2] = 3;
......
return 0;
}

예제) ========================================================

#include <stdio.h>

int main(void)
{
double sum;
double Array[5]; // double형 데이타타입의 5개의
// 요소를 가진 메모리공간 할당
// 총 8byte X 5개 = 40byte(초기화 안되있음 ; 쓰레기값 포함되있음)

Array[0] = 1.01; // 각 요소마다 double형 값을 저장한다.
Array[1] = 2.34;
Array[2] = 3.34;
Array[3] = 10.3;
Array[4] = 4.5;

// 모든값을 요소마다 더해서 sum값에 대입한다.
sum = Array[0] + Array[1] + Array[2] + Array[3] + Array[4];

printf("Array 전체 요소의 평균값 : %lf \n", sum/5);

return 0;
}

=============================================================

 선언과 동시에 초기화

int array[5] = {1, 2, 3, 4, 5};

// int형 데이타 5개 저장할수 있는 array란 이름의 배열 선언을 하고
// 각각의 인덱스에 맞게 순서적으로, 1, 2, 3, 4, 5를 대입한다.

int array1[] = {1, 2, 3, 4, 5}

// int형 데이타를 저장할수 있는 정보를 이런경우는
// 초기화 리스트의 갯수가 있으니까 1, 2, 3, 4, 5의 갯수가 5개 이므로
// 컴파일러가 알아서 숫자를 인식한다 그러믄로 배열요소는 5개

int array2[5] = {1, 2}; // 초기화 리스트 2개가 있다.

// array[0] = 1;
// array[1] = 2;
// array[2] = 0;
// array[3] = 0;
// array[4] = 0;
// 이렇게 자동으로 0으로 초기화 시켜준다.

@ 조심할점 : int array[] ; // 에러발생

'프로그래밍 > C' 카테고리의 다른 글

제 16장 포인터의 이해 - 1  (0) 2010.07.10
제 15장 1차원 배열 - 2  (0) 2010.07.10
제 13장 C언어의 핵심 함수 - 3  (0) 2010.07.10
제 12장 C언어의 핵심 함수 - 2  (0) 2010.07.10
제 11장 C언어의 핵심 함수 - 1  (0) 2010.07.10
Posted by 토실토실천재