반응형
여러 문자열을 배열에 담아두고 필요할 경우 꺼내서 쓰고 싶은 경우가 있다.
결론부터 말하자면,
이 경우 char * 포인터 변수를 선언하고, 배열 내에 사용할 문자열을 넣으면 된다.
#include <stdio.h>
int main()
{
// 문자열들을 저장하는 배열 선언, 3개의 문자열 저장
char* strArr[3] = {"hello world", "nice to meet", "have a good"};
// 문자열 출력하기
printf("첫번째 : %s\n", strArr[0]);
printf("두번째 : %s\n", strArr[1]);
printf("세번째 : %s\n", strArr[2]);
return 0;
}
반응형
(결과)
이는 char* 타입으로 선언된 포인터 변수 strArr은 각 문자열의 첫글자에 대한 주소값들을 저장하고 있는 것이다. 즉 각 문자열의 맨앞자리 알파벳의 주소값 3개 {'h'의 주소값, 'n'의 주소값, 'h'의 주소값} 를 담고 있는 것이다.
예를 들면 마치 {0x123A, 0x3B3F, 0x18C6} 과 같이 각 문자열의 시작하는 첫 알파벳의 주소를 담고 있는것과 비슷하다.
(이 원리에 대한 자세한 사항은 아래 참고)
https://ansan-survivor.tistory.com/1251
반응형
'C언어 \ C++ > 포인터 \ 배열' 카테고리의 다른 글
[C언어] 함수의 받는 인자(input)로 배열(array) 전달하기, 배열을 변경하는 함수 (0) | 2022.02.06 |
---|---|
[C언어] 변수 값 바꾸기 Swap 예제 (포인터 예제 포함) (0) | 2022.02.06 |
[C언어] 포인터로 문자열 선언, 배열 문자열 선언과 차이. (문자열 내부 변경하기) (0) | 2022.02.05 |
[C언어] C언어 배열을 포인터로 변환하기 (배열을 포인터로 바꾸기) (0) | 2022.02.05 |
[C언어] C언어 배열과 포인터의 관계 (변수형 포인터, 상수형 포인터), 포인터로 배열 변경하기 (0) | 2022.02.05 |