EASY7

[C언어 24강] 함수와 포인터 본문

개발 공부/C

[C언어 24강] 함수와 포인터

E.asiest 2016. 7. 13. 14:56

함수 호출시 parameter로 포인터 넣기

#include<stdio.h>

int num_change(int i, int j);/*이거 안하면 warning 뜸 */

void main()

{

int i=5,j=10;

num_change(i,j); /*값이 넘어감*/

printf("i= %d j=%d",i,j);

}

int num_change(int i, int j)

{

i+=5;

j+=5;

return 0;

}

 

이렇게 해도 i=5 j=10이렇게 나옴

main과 num_change의 i, j는 다른 것이기 때문이다.

 

#include<stdio.h>

void main()

{

int i=5,j=10;

num_change(&i, &j);

printf("i= %d j=%d", i, j);

}

int num_change(int *i, int *j)

{

*i+=5;

*j+=5;

return 0;

}

 

*i=*i+5해서 바뀜

 

숫자 크로스해보기

int num=*i;

*i=*j;

*j=num;

 

[2] 함수포인터

함수 호출시 포인터에 여러 함수를 가리키도록 지정한 다음 프로그램 로직에 따라 각기 다른 함수를 호출할 수 있도록 한 것

프로그램의 유연성!

형식:

포인터 선언- 자료형 (*포인터)(인수);

함수정의 -    자료형 함수명(인수);

 

#include<stdio.h>

void sample(int a);

void main()

{

int i=5;

void (*p)(int a);

p=sample;

sample(i); 또는 p(i);

}

void sample(int a)

{

printf("%d",a+5);

}

멀티플러그처럼 포인터를 호출하면 함수 여러개 호출됨.

 

 

 

 

Comments