728x90
반응형
함수와 주소
함수의 이름도 배열과 마찬가지로 주소를 나타낸다.
아래 코드를 통해서 확인이 가능하다.
#include <stdio.h>
void helloworld()
{
printf("Hello, World!");
}
int main()
{
printf("%p", helloworld);
return 0;
}
함수 포인터
함수 포인터에는 함수의 주소값을 저장할 수 있다.
함수 포인터를 선언할 때에는 저장될 함수의 반환형과 매개변수가 필요하다.
예를 들어 int형 변수 2개를 매개변수로 갖는 double형 함수의 주소를 저장하는 함수 포인터는 다음과 같인 선언할 수 있다.
double (*ptr)(int, int) = calc;
double calc (int a, int b) {
return (double)a/b;
}
매개변수가 없는 함수의 경우에는 아래 코드처럼 빈 괄호를 사용하여 포인터를 선언할 수 있다.
void (*ptr)() = helloworld;
void helloworld() {
printf("Hello World!");
}
728x90
반응형
'C언어 > C언어 문법' 카테고리의 다른 글
[C언어] Call By Reference (0) | 2024.02.16 |
---|---|
[C언어] 함수 포인터 배열 (0) | 2024.02.15 |
[C언어] 리터럴 상수 (Literal Constant) (0) | 2024.02.13 |
[C언어] 문자열 배열 (0) | 2024.02.13 |
[C언어] 문자열 (변수 형태의 문자열, 상수 형태의 문자열) (0) | 2024.02.13 |