c언어 열혈강의 9장 정리

c언어의 핵심! 함수

main 함수 다시 보기: 함수의 기본 형태

int main (void) // 반환의 형태, 함수의 이름, 입력의 형태
{
   함수의 몸체
}

함수를 정의하는 이유 
-모듈화에 의한 프로그램의 질 향상이 가ㅡㅇ
-유지 보수 및 확장의 용이성
-문제 해결의 용이성 : "divide and conquer!"

함수 선언의 필요성
-컴파일러의 특성상 , 함수는 호출되기 전에 정의되어야 한다.

함수 선언의 의미
-이후에 정의될 할수에 대한 정보 제공

int add(int a,int b); ----> add 함수의 원형 선언

int main()   
{
  add(3,4);
  return 0;
}

int add(int a,int b) ----> add 함수의 정의
{
   int result = a+b;
   return result;
}
 
변수의 범위(scope)

변수의 특성에 따른 분류
-지역 변수(local variable)
-증 괄호 내에 선언되는 변수
-지역 변수는 선언 된 함수 내에서만 접근 가능
-지역 변수는 함수가 끝나면 메모리 공간에서 살아 진다.
-{},경우에 따라서 지역 변수는 다른 지역 변수를 가리기도 한다.
-같은 이름으로 선언된 내부에 선언된 지역 변수는 외부의 지역변수 를 무시하게 된다.
-매개 변수도 지역 변수의 일종이다.

-전역 변수(global variable)
-함수 내에 선언되지 않는 변수
-프로그램 어디에서나 접근이 가능한 변수
-특정 영역(함수, 반복문..)에 속하지 않는다.
-프로그램이 종료될 때까지 존재 한다.
-같은 이름의 지역 변수에 의해서 가려지기도 한다.
-디폴트로 0으로 초기화
-전역변수의 이름과 지역변수의 이름은 현명하게 다르게 할것
-정적 변수(static variable)
-함수 내부 , 외부 모두 선언 가능

-레지스터 변수(register variable)
-선언에 제한이 많이 따름
-보다 빠르게

또 다른 형태의 지역 변수
-while , for ,if 와 같은 문장에 의해 형성 되는 지역 내에서 선언되는 변수

static 변수
-함수 내부 및 외부에 선언 가능하다.
-한번만 초기화된다. 전역 변수의 특징
-함수 내부에서 선언될 경우 함수 내에서만 접근이 가능하다.:지역 변수의 특징

재귀함수
재귀 함수의 기본적 이해
자기 자신을 다히 호출하는 형태의 함수

컴퓨터 구조, 운영체제
-------------------->

-탈출 조건의 필요성
-무한 재귀 호출을 피하기 위해서

자료구조(데이타를 표현하는 방식),알고리즘(문제해결)

/* recursive_basic2.c */

#include <stdio.h>

void Recursive(int n)
{
 printf("Recursive Call! \n");
 if(n==1)/* 탈출 조건 */
  return; /* 함수를 빠져 나간다 */
 Recursive(n-1);
}

int main(int argc,char *argv[])
{
 int a=2;
 Recursive(a);
 return 0;
}

재귀 함수 design 사례
-팩토리얼(factorial)계산을 위한 알고리즘
n!=nx(n-1)!
f(n) = n x f(n-1) n이 1이상인 경우
     = 1 n이 0인 경우
 

 

 

 

by jinaida | 2007/05/01 17:28 | c언어관련 | 트랙백 | 덧글(0)
트랙백 주소 : http://jinaida.egloos.com/tb/1148782
☞ 내 이글루에 이 글과 관련된 글 쓰기 (트랙백 보내기) [도움말]

:         :

:

비공개 덧글



< 이전페이지 다음페이지 >