ÇÔ¼ö Æ÷ÀÎÅÍ ------------------------------------------------------ ¡Ú¡Ú int (*ptr) (int, int) ŸÀÔ Æ÷ÀÎÅÍ ¸Å°³Ã¼1, ¸Å°³Ã¼2 ¡Ú¡Ú void (*ptr) (int, int) ŸÀÔ Æ÷ÀÎÅÍ ¸Å°³Ã¼1, ¸Å°³Ã¼2 //------------------------1--------------------------- void no1(int n1, int n2) { printf("%d + %d = %d \n", n1, n2, n1+n2); } void no2(char* str) { int i; printf("%s (¹®ÀÚ¿­)\n", str); //¹®ÀÚ¿­ Ãâ·Â for(i=0; i<20; i++) { printf("%c", str[i]); //´Ü¹®ÀÚ Ãâ·Â } printf("\n"); } int main(void) { int num1=10, num2=20; char* str="ÇÑ±Û Ç¥±â"; void (*ptr1) (int, int) = no1; //¡á ÇÔ¼ö¼±¾ð Çü½ÄÀÓ void (*ptr2) (char *) = no2; //¡Ú °¢ °³Ã¼ Á÷Á¢ ¼ÛÃâ ptr1(num1, num2); ptr2(str); return 0; }
Ãâ·Â °á°ú
10 + 20 = 30
ÇÑ±Û Ç¥±â(¹®ÀÚ¿­)
ÇÑ±Û Ç¥±â
//------------------------2--------------------------- ŸÀÔ / Æ÷ÀÎÅÍ / ¸Å°³Ã¼1, ¸Å°³Ã¼2 int sos1(int age1, int age2, int (*ptr)(int n1, int n2)) { return ptr(age1, age2); } int sos2(int age1, int age2) { if(age1 > age2) return age1; else if(age2 > age1) return age2; else return 0; } int sos3(int age1, int age2) { if(age1 < age2) return age1; else if(age2 < age1) return age2; else return 0; } int main(void) { int age1=20; int age2=30; int ptr; printf("ÀÔÀå¼ø¼­ 1 \n"); ptr=sos1(age1, age2, sos2); //¡Ú ÀÓÀÇ ÁöÁ¤ ¼ÛÃâ printf("%d¼¼¿Í %d¼¼ Áß %d¼¼°¡ ¸ÕÀú ÀÔÀå! \n\n", age1, age2, ptr); printf("ÀÔÀå¼ø¼­ 2 \n"); ptr=sos1(age1, age2, sos3); //¡Ú ÀÓÀÇ ÁöÁ¤ ¼ÛÃâ printf("%d¼¼¿Í %d¼¼ Áß %d¼¼°¡ ¸ÕÀú ÀÔÀå! \n\n", age1, age2, ptr); return 0; }
Ãâ·Â °á°ú
ÀÔÀå¼ø¼­ 1
20¼¼¿Í 30¼¼ Áß 30¼¼°¡ ¸ÕÀú ÀÔÀå!

ÀÔÀå¼ø¼­ 2
20¼¼¿Í 30¼¼ Áß 20¼¼°¡ ¸ÕÀú ÀÔÀå!