Programming Languages/C와 C++
C언어 문자열 처리를 위한 포인터 char* 과 배열 char[] 비교
minjiwoo
2021. 12. 14. 21:45
728x90
1. char 포인터 : 문자열의 첫 문자 주소를 저장하므로 문자열 상수의 주소로 사용한다.
char *dept; |
char *dept = "일본어문학전공"; |
이때 변수 dept은 "일본어문학전공" 값을 참조할 수 있다. |
변수 dept는 포인터로 단순히 문자열 상수를 다루는 경우 효과적이다. |
dept = "컴퓨터공학과"; // 가능 |
strcpy(dept, "소프트웨어학부"); // 오류 - 문자열 자체를 저장하거나 수정하는 것은 불가능 |
scanf("%s", dept); // 오류 |
2. char 배열 : 문자열을 구성하는 모든 문자를 하나하나 저장하고 마지막에 '\0' 문자를 저장하여 사용한다.
char name[12]; |
char name[12] = "free"; // free\0 이 저장된다. |
변수 name은 배열로 12byte공간을 가지며 문자열을 저장하고 수정 등이 필요한 경우 효과적이다. |
name = "minji" // 오류 |
strcpy(name, "minji"); // 가능 |
scanf("%s", name); // 가능 |
728x90