ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • 문자와 문자열
    C언어 2020. 2. 16. 05:54

     

    위의 그림은 문자와 문자열을 선언한 것이다.

    ch1, ch2는 변수를 char형으로 선언하며 "A"와 "B" 라는 문자를 선언한 것이다.

    ch4는 문자열을 선언한 것이다.

    문자열은 문자 배열로 볼 수 있으며 따라서 ch4 = {"A","B"} 와 같다 따라서 ch4라는 배열은 A와 B라는 각각의 인스턴스를 가지고 있는 문자의 연속 집합이라고 볼 수 있다.

    위의 자료와 같이 ch1과 ch2는 각각 문자 형태의 자료를 담고있으며 각 메모리에 붙은 이름 역시 독립적이다. 하지만 ch4와 같이 문자배열을 선언한 경우 008CF790이라는 주소의 메모리에 인접한 메모리에 A와B의 문자 형태의 자료를 차례로 담고 있는 것을 확인 할 수 있다. 이것은 흔히 사용하는 문자열이라는 개념은 문자배열을 의미하며 해당 문자배열은 각각의 문자들이 모여서 일정 크기의 메모리에 연속되어 값이 들어가는 형태이다.

    위의 내용을 다시한번 요약해서 설명한다면 다음과 같다.

    ch1과 ch2는 char 자료형의 인스턴스와 같으며 해당 인스턴스에는 문자 A와 B가 담겨져 있다.

    ch4는 문자 A와B라는 인스턴스를 가진 배열이다. 즉 동일한 형식의 자료형인 char 자료형의 여러개의 인스턴스가 연속해서 붙어 있으며 이와 같은 형태를 배열이라고 부른다. (char 형식의 여러 인스턴스들의 집합 즉 배열)

    위의 자료는 배열에 대한 이해를 돕기위한 자료이다.

    선언부에서 인스턴스 3개를 선언했기 때문에 메모리에 3byte에 해당하는 크기의 연접한 공간에 A, B, NULL이 들어가있다. 즉 3개의 char형 인스턴스가 만들어 진 것이다. 이렇게 만들어진 인스턴스들을 식별하기 위해 사용자가 이름을 붙인 것이 ch4라는 이름이다. 

    이제 배열에 대한 개념은 알게 되었을 것이다. 추가적으로 배열을 선언함에 있어 식별자 (이름)은 주소에가서 붙게 되는데 이때 이 주소들만 저장할 수 있는 별도의 변수가 있는데 이것을 포인터라고 칭한다. 

    따라서 문자열은 동일한 char 자료형의 인스턴스들이 연접해서 붙어있는 것을 의미하며 (배열) 이렇게 붙어있는 인스턴스들의 주소에 식별자를 부여하는데 이것이 배열의 이름 (ch4)이다. 추가적으로 주소들만 모아서 관리할 수 있는 변수가 존재하는데 이것을 포인터라고 부른다. 

     

    요약 

    char ch1 = "A", ch2 = "B"

    위의 경우는 메모리에 2개의 독립된 인스턴스가 생성이 되며 인스턴스에 이름이 부여가 된다.

    char ch4[3] = {"AB"}

    위의 경우는 메모리에 3개의 인스턴스가 생성이 되며 이때 연접해서 생성이된다 (배열). 또한 이름을 부여할 때 위의 경우와는 다르게 주소에 이름을 부여하게 된다. 이때 주소에 이름을 부여하는 이유는 인스턴스는 개별적인데 이때 인스턴스에 이름을 부여한다면 다른 연접한 인스턴스들에 대한 문제가 남아있기 때문에 배열의 가장 첫번 째 주소에 이름을 부여함으로 써 나머지 인스턴스까지 식별한다. 즉 첫번 째 인스턴스의 주소에 배열에 이름을 식별자로 할당함으로써 " 나 부터 배열이 시작 돼 " 라고 알려주는 것이다.

     

     

    'C언어' 카테고리의 다른 글

    표준 O/I (getchar, putchar)  (0) 2020.02.16
    C언어 표준 O/I  (0) 2020.02.16
    실수 자료형의 표현  (0) 2020.02.16
    자료형의 종류  (0) 2020.02.06
    자료형이란 ?  (0) 2020.02.06

    댓글

Designed by Tistory.