1. int *p[3] 2. int (*p)[3] 3. int *p(int); 4. int (*p)(int);
1번과 3번의 뜻은 알겠는데 3번과 4번은 가각 무엇을 뜻하는거죠?
1. int *p[3] int* 의 배열 (요소 3개)
2. int (*p)[3] int[3] 배열의 포인터. 즉 typedef int int3[3]; int3* p 와 등가 3. int *p(int); int* 을 리턴하고 int 인자 한개를 갖는 함수 프로토타입
4. int (*p)(int); int 를 리턴하고 int 인자 한개를 갖는 함수 포인터
int song(int); int *p1(int);
main() { int (*p2)(int);
p2 = song; p1(1); p2(2);
*p1(3); <=== 1 // *p2(4); <=== 2
(*p1)(5); (*p2)(6);
}
int song(int k) { printf("i am int song(int %d) function\n", k); }
int * p1(int k) { printf("i am int * p1(int %d) function\n", k); }
1, 2번은 약간 변칙이지만, 참고삼아 올렸어요. 돌려보시면 질문에 약간의 답이 되지 않을까 생각하네요.
그럼 건투를...
^________________________________________________^
텍스트 포맷에 대한 자세한 정보
<code>
<blockcode>
<apache>
<applescript>
<autoconf>
<awk>
<bash>
<c>
<cpp>
<css>
<diff>
<drupal5>
<drupal6>
<gdb>
<html>
<html5>
<java>
<javascript>
<ldif>
<lua>
<make>
<mysql>
<perl>
<perl6>
<php>
<pgsql>
<proftpd>
<python>
<reg>
<spec>
<ruby>
<foo>
[foo]
Re: 포인터에 관한 질문
1. int *p[3]
int* 의 배열 (요소 3개)
2. int (*p)[3]
int[3] 배열의 포인터. 즉
typedef int int3[3];
int3* p 와 등가
3. int *p(int);
int* 을 리턴하고 int 인자 한개를 갖는 함수 프로토타입
4. int (*p)(int);
int 를 리턴하고 int 인자 한개를 갖는 함수 포인터
[답]참고로 한번 보시죠.
int song(int);
int *p1(int);
main()
{
int (*p2)(int);
p2 = song;
p1(1);
p2(2);
*p1(3); <=== 1
// *p2(4); <=== 2
(*p1)(5);
(*p2)(6);
}
int song(int k)
{
printf("i am int song(int %d) function\n", k);
}
int * p1(int k)
{
printf("i am int * p1(int %d) function\n", k);
}
1, 2번은 약간 변칙이지만, 참고삼아 올렸어요.
돌려보시면 질문에 약간의 답이 되지 않을까 생각하네요.
그럼 건투를...
^________________________________________________^
댓글 달기