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)과 같이 만들어야 한다.
끝의 0은 ‘0’이 아니다. 그냥 0이다. ‘0’과 0은 다르다!
배열의 최대 갯수를 넘어가면 안된다!!
(3)은 이해가 잘 가는데, (4)는 별 문제 없을거 같지만…