[C] 문자열과 배열

2024. 7. 28. 19:00Memorizing/C

728x90

다른 글에서 배열 인덱싱 연산자에 대해서 다루었다.

그렇다면 왜 문자열에서는 배열과 동일하게 연산자가 동작할까 ? 아래의 코드는 정확하게 동일한 결과를 출력한다. 

#include <stdio.h>

int main()
{
    char ary[6] = "hello";
    for(int i = 0; i < 5; i++){
        printf("%c\n", ary[i]);
    }
    for(int i = 0; i < 5; i++){
        printf("%c\n", "hello"[i]);
    }
    return 0;
}

컴파일러의 문자열 처리

컴파일러에서는 문자열 상수의 값을 문자열 배열로 처리하게 된다. 즉, 아래와 같이 표현할 수 있다. 그렇기 때문에 배열의 배열 인덱싱 연산자가 문자열 상수에서 동일하게 동작하는 것이다.

"hello" == char ary[6];