본문 바로가기
코스웨어/16년 스마트컨트롤러

20160308_양준우_업무일지_그밖의기초학습

by 알 수 없는 사용자 2016. 3. 8.
728x90
반응형

[for를 사용한 구문과 함수포인터]

1. for를 사용한 구문

앞서 배웠던 while 구문을 통해 구구단과 같은 것들을 출력할 수 있었는데, for구문은 그러한 while 구문을 조금 더 편리하게 사용할 수 있는 방법이다.

while 구문에서 조금만 변형하면 되는데 다음과 같다.

 

 

while을 for로 변경후 ①,②,③을 차례로 for의 뒤쪽 괄호 안에 넣어주면 된다.

실행을 해보면 다음과 같이 똑같은 결과가 나오는 것을 알 수있다. 또한 아래와 같이 구구단을 출력하였을 경우 scanf 구문을 사용하여 원하는 단만 출력이 가능하다.

 

2. 함수포인터

함수 포인터를 사용하는 이유는
①프로그램 코드의 간결
②중복 코드를 줄이기 위해서
③상황에 따라 해당되는 함수를 호출할 수 있음

이러한 이유로 함수포인터를 사용하는데 기본적으로 함수포인터를 이해하고 사용하기 위해서는 함수의 타입에 대해 알아야한다.

가령, void smart1() 이라는 형태의 함수가 있다면 void (*)()가 이 함수의 타입이다.

다음은 다양한 형태의 함수포인터 타입이다,
① int (*ifunc)(int a);
    return값 : int 형
    인자 : int a
    함수 포인터 명 : ifunc
② char *(*cfunc)(char *p[]);
    return값 : char 포인터형
    인자 : char형의 포인터 배열
    함수 포인터 명 : cfunc
③ void (*vfunc)(void);
    return값 : 없음, 혹은 void
    인자 : 없음, 혹은 void
    함수 포인터 명 : vfunc
④ int (*fptr) (int a, int b);
    return값 : int 형
    인자 : int a과 int b
    함수 포인터 명 : fptr

이를 활용한 예시 코드와 결과 값이다.

 

 

 

 

 

 

 

 

 

728x90