ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • 03. 배열, 구조체, 포인터
    Computer Science/Data Structure 2021. 4. 5. 02:21

    3.1 배열

    개념

    • 동일한 타입의 데이터를 한 번에 여러개 만들 때 사용하는 자료형
    • 인덱스(index) 번호를 사용하여 여러개 만들 때 사용하는 자료형

    특징

    • 연속적인 메모리 할당이 가능하다.
    • index 번호를 이용하여 쉽게 접근 할 수 있다.

    1차원 배열 선언

    • 자료형 배열이름[배열 요소의 개수];
    int list[3];
    • 초기화 방법
    int list[3] = { 1, 2, 3 };

    2차원 배열 선언

    • 자료형 배열이름[행 요소의 개수][열 요소의 개수];
     int list[3][5];

    2차원배열

     

    좌표라고 생각하면 이해하기 편하다. 예를 들면 list[0][0] > (0, 0) , list[2][3] > (2, 3) 

     

    3.2 구조체(Struct)

    개념

    • 타입이 다른 데이터를 묶는 방법
    • 배열과의 차이점
      : 배열타입이 같은 데이터의 모임 이며, 구조체타입이 다른 데이터를 묶는 방법이다.

    구조체의 형식

    struct 구조체이름 {
    	항목1;
        항목2;
        ...
    };
    • 구조체의 형식이 정의 되었다면, 구조체 변수를 생성해주어야 한다.
    struct 구조체이름 구조체변수;
    
    • typedef을 사용하여 구조체를 새로운 타입으로 선언할 수도 있다.
    typedef studentTag {
     	char name[10];
        int age;
        double gpa;
    } student;
    student s = { "shin", 20, 4.3 };

    구조체 변수 선언 방법 과 예

    1. 구조체형 선언 후, 변수 선언

    구조체형 선언 후, 변수 선언

          2. 구조체형과 구조체 변수를 연결하여 선언

    구조체형과 구조체 변수를 연결하여 선언

       3. 구조체형 이름을 생략하고 구조체 변수 이름만 선언

       3. 구조체형 이름을 생략하고 구조체 변수 이름만 선언

     

    3.3 포인터(Pointer)

    개념

    • 다른 변수의 주소를 가지고 있는 변수이다. 모든 변수에는 메모리 공간에 저장되고, 메모리의 각 바이트엔 주소가 매겨져 있다.
    • 변수를 선언하게 되면 메모리의 특정 위치에 저장되는데, 그 위치를 나타내는 메모리 주소를 포인터라고 한다.
    • 예를 들어, " 편지봉투받는 사람 주소를 쓰면, 그 주소로 편지가 전달되어 집주인이 편지를 받게 된다. " 라는 문장에서 봤을 때, 

      편지봉투에 받는 사람 주소가 적혀있으므로 포인터라고 볼 수 있고,
      받는 사람 주소메모리 주소이며,
      주소에 해당하는 집주인이 편지를 받는 행위는 포인터를 통한 액세스 처리 라고 생각 하면 된다.

    포인터와 관련된 연산자

    • & 연산자: 변수의 주소를 추출
    • * 연산자: 포인터가 가리키는 곳의 내용을 추출
    int a; // 정수형 변수
    p = &a; // 변수의 주소를 포인터에 저장
    *p = 200;

    이렇게 된다면, 

    그림에서 설명한 것과 같은 이유로 값만 같은 것이 아니라, 동일한 실제적인 객체를 가리키기 때문에  a의 값도 200이 된다. 

    'Computer Science > Data Structure' 카테고리의 다른 글

    04. 스택의 응용 - 괄호 검사 문제 알고리즘  (0) 2021.04.10
    04. 스택  (0) 2021.04.10
    02. 순환  (0) 2021.03.24
    01. 자료구조와 알고리즘  (0) 2021.03.21

    댓글

Designed by Tistory.