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