반응형
10개 정도의 속담을 문자열의 형태로 함수 set_proverb() 내부에 저장하고 있다가 사용자가 set_proverb()을 호출하면 인수로 받은 이중 포인터를 이용하여 외부에 있는 char형 포인터 s를 설정하는 set_proverb()을 작성하고 테스트하라.
저는 너무 어렵게 느껴지는 이중포인터네요.. 여러번 읽어보니까 우리가 어떤 변수를 함수를 통해 원본을 바꾸려고 할 때 포인터를 쓰는 것처럼,
포인터를 함수를 통해 바꿔주기 위하여 포인터의 포인터를 사용하는 것이 이중 포인터 같은데.. (제 생각임)
굉장히 헷갈리네요!! 여기서는 포인터가 문자열처럼 쓰였네요 아래 array는 포인터배열이네요
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 | #include <stdio.h> void set_proverb(char **q, int n); //포인터 p를 가리킬 이중포인터 q int main(void) { char *p; //포인터 p가 배열처럼 사용될 예정임 int i=0; printf("몇 번째 속담을 선택하시겠습니까?(0~9)"); scanf("%d", &i); set_proverb(&p,i); printf("%s \n", p); return 0; } void set_proverb(char **q, int n) { static char *array[10]= {"낮말은 새가 듣고 밤말은 쥐가 듣는다.", "베지밀 아몬드와 호두우유", "두루마리 휴지", "파도무늬를 가진 텁", "끼얏-호!", "어처구니가 없구만", "메이플스토리~메이플스토리~", "앗잇읏헥!", "소환사의 협곡에 오신 것을 환영해요", "어써오쎄요~"}; *q= array[n]; //*q=p가 된다. 즉 p에 array[n]이 대입된다.(array[n]도 포인터이자 배열) } | cs |
반응형
'컴퓨터 & 프로그래밍 & 전자공학 > C언어' 카테고리의 다른 글
문자열의 배열 출력 (0) | 2017.01.05 |
---|---|
2차원 배열 합 (0) | 2017.01.04 |
데이터베이스 (0) | 2017.01.03 |
삼각형, 사각형, 원 (0) | 2017.01.02 |
포커 카드 배열 (0) | 2016.12.28 |