EASY7
[C언어 24강] 함수와 포인터 본문
함수 호출시 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);
}
멀티플러그처럼 포인터를 호출하면 함수 여러개 호출됨.
'개발 공부 > C' 카테고리의 다른 글
[C언어 26강] 오름차순 버블정렬 알고리즘(배열) (0) | 2016.07.13 |
---|---|
[C언어 25강] 함수포인터 (0) | 2016.07.13 |
[C언어 23강] 포인터와 문자열 strcpy (0) | 2016.07.12 |
[C언어 22강] 포인터 배열 (0) | 2016.07.12 |
[C언어 21강] %출력 형태 (0) | 2016.07.12 |