19. 함수 포인터와 void 포인터
19-1 함수 포인터 함수 포인터의 이해 그림 19-1
double (*fPtr2) (double, double); 19-1 함수 포인터 함수 이름의 포인터 타입을 결정짓는 요소 리턴 타입 + 매개 변수 타입 예제 fct_ptr1.c, fct_ptr2.c 참조 int fct1 (int a) { a++ return a; } int (*fPtr1) (int); double fct2 (double a, double b) { double add=a+b; return add; } double (*fPtr2) (double, double);
19-2 void형 포인터 void형 포인터란 무엇인가? 자료형에 대한 정보가 제외된, 주소 정보를 담을 수 있는 형태의 변수 자료형에 대한 정보가 제외된, 주소 정보를 담을 수 있는 형태의 변수 포인터 연산, 메모리 참조와 관련된 일에 활용 할 수 없다. int main(void) { char c=’a’; int n=10; void * vp; // void 포인터 선언 vp=&c; vp=&n; . . . . . int main(void) { int n=10; void * vp=&n; *vp=20; // Error! vp++; // Error! . . . . .
19-3 main 함수의 인자 전달 그림 19-5 /* main_arg.c */ #include <stdio.h> int main(int argc, char **argv) { int i=0; printf("전달된 문자열의 수 : %d \n", argc); for(i=0; i<argc; i++) printf("%d번째 문자열 : %s \n", i+1, argv[i]); return 0; } 그림 19-5