다루두루

블로그 이미지

차케요

공부하면서 정리하는 노트같은 블로그입니다.

C언어 기초 함수 포인터

C언어 알고리즘 2015. 9. 19. 16:04


C언어 기초 함수 포인터


 이번 글에서는 C언어 기초 중에서 함수 포인터에 대해서 기본 개념과 선언하는 방법을 알아보겠습니다. 우리가 정의하는 함수도 변수와 마찬가지로 메모리에 저장되는데요. 함수의 이름이 그 주소 값을 의미하는 것입니다. 즉, 이 주소 값을 저장하기 위한 별도의 함수 포인터를 선언할 수 있습니다. 

 

 함수 포인터도 선언하기 위해서는 먼저 포인터 형을 결정지어야 하는데 다음과 같은 함수가 있다고 가정해볼게요.


int aaa(int x){...}


이 함수는 반환형과 매개변수 모두 int형인 aaa라는 함수입니다. 그리고 앞에서 정의한 대로 'aaa'는 이 함수의 메모리상의 주소 값을 저장하고 있는데요. 함수 포인터는 이 반환형과 매개변수를 기준으로 포인터 형을 결정짓습니다. 그래서 이 함수의 주소 값을 저장할 포인터 변수는 다음과 같이 선언합니다.

 


int (*po) (int);


이 형식에서 po는 포인터 이름이고 앞쪽의 int는 반환형 뒤쪽의 int는 매개변수의 자료형을 의미합니다. 만약 다음과 같이 매개변수가 두 개인 함수라면...


int bbb(int x, int y){}


포인터 변수는 int (*po2) (int, int); 가 되는 것입니다. 그리고 이 포인터 변수에 함수의 주소 값을 저장하기 위해서는 다음과 같이 대입하면 됩니다.


po2=bbb;


이제 po2=bbb가 되는 건데요. 일반적으로 함수를 호출할 때는 bbb(5, 6) 형식으로 하지만, 이렇게 포인터 변수에 대입해놨으니 앞으로는 po2(5, 6)도 가능합니다. 지금까지 정리한 내용으로 예제를 만들어서 확인해보겠습니다.

 

▲ su1과 su2 변수를 선언 및 초기화 한 후 함수 포인터 po를 선언하고 있습니다. 그리고 이 포인터에 함수 aaa를 대입하고 있는데요. 이제 po에는 aaa의 주소 값이 저장되고 po=aaa는 같아지기 때문에 각각 호출하면 같은 결과가 출력될 것입니다. 프로그램을 실행해서 확인해보고 마무리할게요.


 이렇게 해서 C언어 기초에서 함수 포인터의 개념을 정리해봤습니다. 수고하셨어요.


저작자표시 비영리 변경금지 (새창열림)
Posted by 차케요

    최근...

  • 포스트
  • 댓글
  • 트랙백
  • 더 보기

카테고리

NEW (900)
아이폰 개발 기초 (7)
취미 (16)
아두이노 (16)
[안드로이드] 어플만들기 (77)
안드로이드 기초 다지기 (61)
슈팅게임 만들기 (4)
[JAVA]자바 공부하기 (48)
C언어 알고리즘 (61)
[Unity3D]유니티3D 강좌 (7)
컴퓨터 (325)
포토샵CS2 강좌 (6)
유용한 프로그램 (244)
리눅스 노트정리 (22)
임베디드 리눅스 (11)
New블로그 (9)
음식의 효능 (4)
일반상식 (56)
HTML 공부 (40)
포토샵 공부 (36)
엑셀 (6)
파워포인트 공부 (19)
노트정리 (38)
일상 (33)
TV영화 (85)
방명록 : 관리자 : 글쓰기
차케요's Blog is powered by daumkakao
Skin info material T Mark3 by 뭐하라
favicon

다루두루

공부하면서 정리하는 노트같은 블로그입니다.

  • 태그
  • 링크 추가
  • 방명록

관리자 메뉴

  • 관리자 모드
  • 글쓰기
  • NEW (900)
    • 아이폰 개발 기초 (7)
    • 취미 (16)
      • 아두이노 (16)
    • [안드로이드] 어플만들기 (77)
      • 안드로이드 기초 다지기 (61)
      • 슈팅게임 만들기 (4)
    • [JAVA]자바 공부하기 (48)
    • C언어 알고리즘 (61)
    • [Unity3D]유니티3D 강좌 (7)
    • 컴퓨터 (325)
      • 포토샵CS2 강좌 (6)
      • 유용한 프로그램 (244)
    • 리눅스 노트정리 (22)
      • 임베디드 리눅스 (11)
    • New블로그 (9)
    • 음식의 효능 (4)
    • 일반상식 (56)
    • HTML 공부 (40)
    • 포토샵 공부 (36)
    • 엑셀 (6)
    • 파워포인트 공부 (19)
    • 노트정리 (38)
    • 일상 (33)
    • TV영화 (85)

카테고리

PC화면 보기 티스토리 Daum

티스토리툴바