#include <stdio.h>
/* 이중 포인터 수업 전략
1. 그림 그리기
2. 표 만들기
그림에서 포인터 구조로 옳게 표현된 번호 = 2
표에서 변수의 출력값 = */
int main(){
char str[4][3]={"ab",
"cd",
"ef",
"gh"};
/* str[4][3]= {'a', 'b', '\0',
'c', 'd', '\0',
'e', 'f', '\0',
'g', 'h', '\0'} */
//배열에 한칸씩 들어가고, 각 행 마지막에는 '\0' null이 다 들어감
char **p; //이중 포인터
char *mid[4]; //문자열 시작 주소를 저장하는 포인터 배열
int i;
for(i=0; i<4; i++){ //각 문자열의 시작 주소 저장
mid[i]=str[i];
printf("%s ", mid[i]); //ab, cd, ef, gh 모두 출력함.
}
p=mid; //p->mid[0]
printf("%s\n", *(p+1)); //cd
//i번째 문자열의 시작 주소(char *)
//mid[1]의 값은 "cd"의 시작 주소(char *)이고, %s가 그 주소부터 문자열 출력
printf("%c\n", **(p+1)); //c
//i번째 문자열의 첫 번째 문자 mid[1][0]의 값
printf("%c\n", *(*(p+2)+1)); //f
//i번째 문자열의 두 번째 문자 mid[2][1]의 값
return 0;
}
To embed this project on your website, copy the following code and paste it into your website's HTML: