✅ 목표 (Goal)

char[] or char*을 이용해서 문자열을 만들어보고

차이점을 알아보자.

✅ 문자열 만드는 여러가지 방법

아래와 같이 여러가지 방법중에 편한것을 사용하면 된다.

#include <stdio.h>

int main() {
    char str1[4] = { 'a','b','c','\\0' }; // (1) 
    char str2[4] = { 'a','b','c' }; // (2) 
    //char str3[4] = { 'a','b','c', 'd', 'e'}; // (3) 
    char str4[4] = { 0x61, 0x62, 0x63, 0x64 }; // (4) 
    char str5[4] = "abc";  // (5) 
    char str6[] = "abc"; // (6)
    char* str7 = "abc"; // (7) 

    printf("str1 = %s\\r\\n", str1);
    printf("str2 = %s\\r\\n", str2);
    //printf("str3=%s\\r\\n", str3);
    printf("str4 = %s\\r\\n", str4);
    printf("str5 = %s\\r\\n", str5);
    printf("str5 = %s\\r\\n", str6);
    printf("str7 = %s\\r\\n", str7);
    return 0;
}

(1),(2)

(1), (2)는 불편하기 때문에 잘 사용되지 않는다.

원래 정석대로 문자열을 만드려면 (1)과 같이 만들어야 한다.

끝의 0은 ‘0’이 아니다. 그냥 0이다. ‘0’과 0은 다르다!

문자열 끝의 0은 뭔가? 0, ‘\0’, ‘0’?

(3)

배열의 최대 갯수를 넘어가면 안된다!!

(4)

(3)은 이해가 잘 가는데, (4)는 별 문제 없을거 같지만…