제 4 장 함수와 기억 클래스

Embed Size (px)

DESCRIPTION

제 4 장 함수와 기억 클래스. 함수의 기초 (cont’d). 함수 주 프로그램으로부터 인수 (argument) 를 전달받아 알련의 작업을 수행한 후 생성된 결과를 주프로그램 (main) 으로 전달하는 하나의 단위 프로그램 함수를 사용하는 이유 반복되는 코드 작성을 없애줌 프로그램을 이해하기 쉽고 이식이 용이하게 함 모듈성 (modularity) 향상시킴. 함수의 기초. 함수 간의 통신 인자의 전달과 리턴되는 값 외부 변수를 이용. 내장 함수. 라이브러리 함수 - PowerPoint PPT Presentation

Text of 제 4 장 함수와 기억 클래스

  • 4

  • (contd) (argument) (main) (modularity)

  • printf(), scanf(), getch() reference guide #include ex) math.h : graphics.h : string.h :

  • return-type fuction-name(argument declarations){declarations and statements}

  • void return ; C int (prototype)

  • (prototype)

  • return-type function-name(argument list); void

  • double sqrt(double x);double atof(char []);int getchar(void);

  • #include float max(float a, float b, float c);

    main(){float x,y,z,k;printf(":"); scanf("%f %f %f", &x, &y, &z); k = max(x, y, z); printf(": %f\n",k); }

  • (cond)float max(float a, float b, float c){float mx; if (a > b) mx = a; else mx = b;if (c > mx) mx = c;return(mx);}

  • Call by value , .Call by reference , .

  • #include

    void inc_bad(int a) {a += 1;}

    void inc_good(int *a) {*a += 1;}

  • (cond)void main(void) {int i = 5, j = 10;int *p;p = &j;

    printf("%d %d %d",inc_bad(i),inc_good(&j),inc_good(p));}inc_bad(i) call by valueinc_good(&j) inc_good(p) call by reference

  • Recursion (recursion) (, )

  • Recursion #include long fact(int n) {if(n
  • main main() int main( int argc, char *agrv[], char *env[] ) ;int argc : command line char *argv[] : command line .argv[0] : ( )argv[1] : white character(space tab)

  • C (preprocessor)(preprocessor) : #include : #define : #if, #else, #endif, #ifdef, #ifndef #include "filename" #include "filename"

  • #define #define name replacement textreplacement text \ name replacement text #define #define max(A, B)((A) > (B) ? (A) : (B))

  • (scope) . (local variable, ) ({} ) (, automatic variable)

  • (global variable, )

  • ex) int extvar ; /* */ char extarray[100] ; /* */ extern int extvar ; /*, extvar */ extern char extarray[100] ; /**/

  • (static variable) ex) static int c ;register CPU : performaceint unsigned int

  • (static )#include void test(){static int s_count = 0;int a_count = 0;

    s_count++;a_count++;printf("static count = %dcount = %d",s_count,a_count);}main(){int I;for(i=1; i

  • (Factorial)#include double fact(); /* */ main(){ int n = 0; /* */do { printf(" :");scanf("%d",&n); if (n
  • (cond)

    double fact( int k ){ register int i; /* */double s = 1; for (i = 1;i