C
상수 형태의 문자열을 가리키는 포인터
오군_
2023. 5. 16. 15:03
반응형
str1은 문자열이 저장된 배열이다. 문자 배열이다 즉 변수성향의 문자열이다.
str2은 문자열의 주소 값을 저장한다. 자동 할당된 문자열의 주소 값을 저장한다.
따라서 상수성향의 문자열이다.
아래의 코드를 보면
str1은 다른 문자열 할당이 되지 않는다.
str2는 문자열주소를 할당받을 수 있어서
다른 문자열을 할당할 수 있다.
변수 성향의 str1에 저장된 문자열의 문자는 변경이 가능
상수 성향의 str2에 저장된 문자열의 문자는 변경이 불가능
char str1[] = "My String";
char* str2 = "Your String";
printf("%s %s \n", str1, str2); // My String Your String 출력
//str1 = "Our String"; 컴파일 오류발생
str2 = "Our String";
printf("%s %s \n", str1, str2); // My String Our String 출력
str1[0] = 'X';
//str2[0] = 'X'; 컴파일 오류 발생
printf("%s %s\n", str1, str2); // Xy String Our String 출력
아래의 그림에서 WhoAreYou라는 함수는 char형 포인터를 매개변수로 받고
인자로 "Hong"을 넣어줍니다. "Hong"은 문자열인데 문자열은 char형 배열과 같습니다.
배열은 포인터와 호환이 되기에 인자로 전달받을 수 있습니다!
이미지 출처 : 윤성우의 열혈 C 프로그래밍
반응형
반응형