티스토리 뷰

C

[C] 배열

tonirr 2021. 4. 14. 01:01
  • 배열의 개념
    • 배열의 정의
      • 동일한 자료형을 갖는 자료들의 리스트
      • 배열의 각 요소는 하나의 변수로 취급
      • 배열은 배열명과 첨자로 구분
    • 배열의 선언 형태
      • 1차원 배열
        • 배열의 첨자가 하나만 있는 배열
        • 첨자의 개수는 배열 전체의 구성요소의 개수를 의미
        • 배열의 각 요소는 배열명과 첨자로 구분
        • 1차원 배열 선언
          • 형식: 자료형 배열명[개수]
          • 사용 예: int a[10]
          • 의미: 1차원 배열로서 배열명은 a이고 배열의 크기는 10이며 정수값이 기억됨
        • 1차원 배열의 기억공간 표현
          • 물리적 표현(수직)
            • array[0], array[1], array[2], ... 
            • 4byte
            • int형이므로 각 요소의 자료는 4byte
          • 논리적 표현(수평)
          • 1차원 배열의 초기화
            • 배열을 선언하면 기억공간을 초기화 해야함
            • 초기화방법
              • 배열선언 후 초기값 할당
                • int array[4];
                • array[0] = 10;
                • array[1] = 20;
                • array[2] = 30;
                • array[3] = 40;
              • 배열선언과 동시에 초기값 할당
                • int array[4] = {10,20,30,40}; -> 배열의 각 요소에 초기값 할당
                • int array[] = {10,20,30,40}; -> 배열의 크기 생략 가능
                • int array[4] = {10,20,30, }; -> array[3] = 0으로 초기화
                • int array[4] = {10, ,30,40}; -> 에러발생
                • int array[4] = {10,20,30,40,50}; -> 초기값이 많으면 에러
              • 외부로부터 자료를 입력받아 초기화
                • int x[10];
                • for(i=0; i<10; i++){ scanf("%d",&x[i]); }
            • 1차원 배열의 초기화 후 기억공간의 표현
      • 2차원 배열
        • 첨자는 0부터 시작
          • 형식: 자료형 배열명[행의 수][열의 수]
          • 사용 예: int a[3][4]
          • 의미: 2차원 배열로서 배열명은 a이고 3행 4열로 된 12개의 요소를 가진 정수형 배열
        • 2차원 배열의 기억공간 표현
          • a(배열명): 배열전체의 시작주소
          • a[0]: 부분배열 a[0]의 시작주소(&a[0][0])
          • a[1]: 부분배열 a[1]의 시작주소(&a[1][0])
      • 3차원 배열
        • 형식: 자료형 배열명[면의 수][행의 수][열의 수]
        • 사용 예: int a[2][3][4]
        • 의미: 3차원 배열로서 배열명은 a이고 2면 3행 4열로 된 24개의 요소를 가진 정수형 배열
    • char형 배열과 문자열
      • char형 배열
        • 형식: char 배열명[문자열 길이 + 1]
        • 사용 예: char str[12]
        • 의미: 배열명이 str이고 12문자 길이를 가진 char형 배열
      • char형 배열과 문자열
        • char형 배열선언과 초기화
          • char name[] = "HONG GIL DONG";
          • char address[] = {'S', 'E', 'O', 'U', 'L', '\0'};
          • 마지막에 '\0'을 추가시켜주지 않는 경우 쓰레기 값이 붙을 수 있음
          • scanf()함수 호출을 통해 입력 받은 문자열의 끝에도 \0가 자동으로 삽입됨
    • 함수와 배열
      • 배열을 함수의 매개변수로 사용할 경우
        • 함수 호출 시 배열명만 명시하여 호출
        • 함수의 헤더에는
          • 1차원 배열의 경우 크기 생략 가능
          • 다차원 배열의 경우 가장 높은 차원의 크기 생략 가능

'C' 카테고리의 다른 글

[C] 포인터와 배열  (0) 2021.04.27
[c] 포인터  (0) 2021.04.21
[C] 입.출력 함수와 연산자  (0) 2021.03.25
[C] 자료형과 선행처리기  (0) 2021.03.19
[C] C언어의 개요  (0) 2021.03.09
댓글
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2025/02   »
1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28
글 보관함