✅ 목표 (Goal)

문자열은 배열로 만들어도 되지만, 포인터로 만들어도 된다.

char[]

char*

어떤 차이가 있을까?

✅ 예제

잘 생성되고, 잘 출력된다.

무슨 차이가 있을까?

#include <stdio.h>

int main() {
    char str1[] = "bts"; // (1)
    char* str2 = "exo"; // (2) 

    printf("str1=%s\\r\\n", str1);
    printf("str2=%s\\r\\n", str2);

    return 0;
}

✅ char*는 변경이 불가능하다!

그런데, (1)과 (2)은 차이가 있다 응?

아래 코드가 가능? 불가능?

한번 해보자.

#include <stdio.h>

int main(void) {
    char str1[] = "bts"; // (1)
    char* str2 = "exo"; // (2) 

    printf("str1=%s\\r\\n", str1);
    printf("str2=%s\\r\\n", str2);

    str1[0] = 's'; // (1)
    str1[1] = 'e';
    printf("str1=%s\\r\\n", str1);

    *(str2 + 2) = 'e'; // (2)
    //str2[2]= 'e';
    printf("str2=%s\\r\\n", str2);

    return 0;
}

뭐야? 둘다 되는거 아니냐?