만약 “apple”가 문자 “a”, “p”를 가진 배열이라면 어떨까?
당연히..배열명을 사용할 것이고 실제로는 배열의 시작위치를 가지고 출력하게 될 것이다. 컴파일 과정에서 문자열은 첫 번째 문자의 주소로 둔갑하고 그 이후는 배열을 출력하는 것과 같은 과정을 거친다.
#include <stdio.h>
int main(void)
{
printf("apple이 저장된 시작 주소 값 : %p\n", "apple"); // 주소 값 출력
printf("두 번째 문자의 주소 값 : %p\n", "apple" + 1); // 주소 값 출력
printf("첫 번째 문자 : %c\n", *"apple"); // 간접 참조 연산
printf("두 번째 문자 : %c\n", *("apple" + 1)); // 포인터 연산식
printf("배열로 표현한 세 번째 문자 : %c\n", "apple"[2]); // 배열 표현식
return 0;
}