Test/C

문자열 상수는 연속된 주소공간에 저장되지 않는다?

kiostory 2017. 8. 27. 19:00

이웃한 주소의 연속으로 출력될 것을 예상하였으나 그렇지 않음


#include <stdio.h>

int main(void)
{
    printf("주소값 : %p\n", "mango");


    printf("첫번째 문자 : %c\n", *"mango");
    printf("첫번째 주소값 : %p\n", *"mango");

    printf("두번째 문자 : %c\n", "mango"[1]);
    printf("두번째 주소값 : %p\n", "mango"[1]);

    printf("세번째 문자 : %c\n", "mango"[2]);
    printf("세번째 주소값 : %p\n", "mango"[2]);

    printf("네번째 문자 : %c\n", "mango"[3]);
    printf("네번째 주소값 : %p\n", "mango"[3]);

    printf("다섯번째 문자 : %c\n", "mango"[4]);
    printf("다섯번째 주소값 : %p\n", "mango"[4]);

    printf("여섯번째 문자 : %c\n", "mango"[5]);
    printf("여섯번째 주소값 : %p\n", "mango"[5]);


    return 0;


}




----------------------------------------


주소값 : 00403024
첫번째 문자 : m
첫번째 주소값 : 0000006D
두번째 문자 : a
두번째 주소값 : 00000061
세번째 문자 : n
세번째 주소값 : 0000006E
네번째 문자 : g
네번째 주소값 : 00000067
다섯번째 문자 : o
다섯번째 주소값 : 0000006F
여섯번째 문자 :
여섯번째 주소값 : 00000000