문자열은 배열로 만들어도 되지만, 포인터로 만들어도 된다.
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;
}
그런데, (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;
}
뭐야? 둘다 되는거 아니냐?