C 배열

(2020-08-08)

배열

1. [C 언어]  배열데이터형이 모두 동일한 원소들의 집합 (자료구조)


2. [C 언어]  배열의 특징

  ㅇ 저장방식 : 원소들이 메모리에 연속으로 저장됨
  ㅇ 접근방식 : 정수 인덱스를 사용하여 각 원소에 접근
  ㅇ 데이터형 : 배열 내 모든 원소들이 같은 데이터형 만 가능
  ㅇ 인덱스 : 0부터 시작하고, size-1까지, 정수이어야 함
  ㅇ 배열 크기 : 0 보다 커야하고, 정수이어야 함
  ㅇ 다차원 배열 : 배열 안에 배열을 보관 처리 가능
  ㅇ 포인터와의 관계 : 포인터와 밀접한 관계임
     - 사실상, 배열 표기는 포인터의 다른 표현에 불과한 것으로 봄


3. [C 언어]  배열선언배열선언 이란?
     - 배열의 명칭(name), 원소 갯수(size), 원소 데이터형(type)을 컴파일러에게 알려주는 것
        . type name[size]; => 例) int array[6];

  ㅇ 일단, 프로그램 시작 후에는, 배열 크기 변경 못함
     - int n=5; int array[n]; // 컴파일 에러 발생

  ㅇ 배열 원소의 디폴트값 : 숫자 0

  ㅇ 배열 원소 및 주소 간의 관계
     - array[i]  ↔  base + i*sizeof(int)

  ㅇ 2 차원 배열선언 例) int array[3][5];


4. [C 언어]  배열초기화

  ㅇ 콤마(,)로 분리된 값들의 리스트를 중괄호({})로 감쌈
     - (형식)  type name[size] = {value1,value2,...};
        . size 생략하고 빈 괄호 []를 쓰면, 컴파일러가 알아서 개수를 세어 배열 크기를 정함

  ㅇ 다 차원 배열 초기화 例) int x[2][3] = {{1,2,3},{4,5,6}};

  ㅇ 지정 초기화자 (designated initializer) (C99 이후)
     - 例) int array[6] = {[5] = 28}; // array[5]를 28로 초기화

  ㅇ 배열 요소를 모두 영(0)으로 초기화하는 例) int x[2] = {0,};
        

5. [C 언어]  배열연산

  ㅇ 값 대입하기 (set 연산) : 例) array[0] = value;
     - 배열 각 원소에 인덱스를 사용하여 값 대입 

     * 허용 안되는 사례
        . 배열배열로 통째로 대입 안됨
        . 배열 초기화 이외에는 중괄호로 묶는 값 리스트 형식의 대입이 허용 안됨

  ㅇ 값 가져오기 (get 연산) : 例) value = array[0];

  ㅇ 배열 크기 : sizeof(배열명)/sizeof(배열 자료형)
     - 例) sizeof(arr_name)/sizeof(int);


[배열,포인터] 1. C 배열 2. 포인터 3. 파일 포인터 4. 함수 포인터

 
        최근수정     요약목록     참고문헌