Memorizing/C
[C] 문자열과 배열
Mingi Kim
2024. 7. 28. 19:00
다른 글에서 배열 인덱싱 연산자에 대해서 다루었다.
그렇다면 왜 문자열에서는 배열과 동일하게 연산자가 동작할까 ? 아래의 코드는 정확하게 동일한 결과를 출력한다.
#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];