1 / 9

[ 2012-2 ] 컴퓨터 프로그래밍 2 week6 : 함수와 변수 [ 실습하기 ]

[ 2012-2 ] 컴퓨터 프로그래밍 2 week6 : 함수와 변수 [ 실습하기 ]. 변수의 범위 함수의 순환 / 반복구조. 최 윤 정. 지역 / 전역 변수 실습 예제. #include &lt; stdio.h &gt; int main( void ) { int i; for (i = 0;i &lt; 5; i++)         { int temp = 1; printf ( &quot;temp = %d<br>&quot; , temp);                 temp++; } return 0; }.

madison
Download Presentation

[ 2012-2 ] 컴퓨터 프로그래밍 2 week6 : 함수와 변수 [ 실습하기 ]

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. [2012-2] 컴퓨터 프로그래밍 2week6 :함수와 변수 [실습하기] 변수의 범위 함수의 순환/반복구조 최 윤 정

  2. 지역/전역 변수 실습 예제 #include<stdio.h> int main(void) { int i; for(i = 0;i < 5; i++)         { int temp = 1; printf("temp = %d\n", temp);                 temp++; } return 0; } 블록이 시작할 때마다 생성되어 초기화된다. temp = 1 temp = 1 temp = 1 temp = 1 temp = 1

  3. 함수의 매개 변수 #include<stdio.h> intinc(int counter); int main(void) { int i;         i = 10; printf("함수 호출전i=%d\n", i); inc(i); printf("함수 호출후i=%d\n", i); return 0; } intinc(int counter) {    counter++; return counter; }                        값에 의한 호출 (call by value) 매개 변수도 일종의 지역 변수임 함수 호출전i=10 함수 호출후i=10

  4. 전역 변수 #include<stdio.h> int x = 123;   void sub1() { printf("In sub1()  x=%d\n",x);     // 전역 변수 x 접근 } void sub2() { printf("In sub2()  x=%d\n",x);     // 전역 변수 x 접근 } int main(void) {         sub1();         sub2(); return 0; } 전역 변수: 함수의 외부에 선언되는 변수 In sub1()   x=123 In sub2()   x=123

  5. 전역 변수의 초기값과 생존 기간 #include<stdio.h> int counter; // 전역 변수 voidset_counter(int i) {         counter = i;         // 직접 사용 가능 } int main(void) { printf("counter=%d\n", counter);         counter = 100;               // 직접 사용 가능 printf("counter=%d\n", counter); set_counter(20);             printf("counter=%d\n", counter); return 0; } *전역 변수의 초기값은 0 *생존 기간은 프로그램 시작부터 종료까지 counter=0 counter=100 counter=20

  6. 전역 변수의 사용 // 전역 변수를 사용하여 프로그램이 복잡해지는 경우 #include<stdio.h> void f(void); int i; int main(void) { for(i = 0;i < 5; i++)         { //printf(“i =%d \n”,i); 를 넣어 i값을 확인해보세요  f();         } return 0; } void f(void) { for(i = 0;i < 10; i++) { printf("#"); //printf(“i =%d \n”,i); 를 넣어 i값을 확인해보세요 } }       ##########

  7. static 변수의사용예제 #include<stdio.h> void sub(void); int main(void) { int i; for(i = 0;i < 3; i++)                 sub(); return 0; } void sub(void) { intauto_count = 0; staticintstatic_count = 0; auto_count++; static_count++; printf("auto_count=%d vs.", auto_count); printf("static_count=%d\n", static_count); } auto_count=1 vs. static_count=1 auto_count=1 vs. static_count=2 auto_count=1 vs. static_count=3 정적 지역 변수로서 static을 붙이면 지역 변수가 정적 변수로 된다. 자동 지역 변수

  8. 하노이탑 실습 • #include <stdio.h> • voidhanoi_tower(int n, char from, chartmp, char to) • { • if( n==1 ) printf("원판 1을 %c 에서 %c으로 옮긴다.\n",from,to); • else { • hanoi_tower(n-1, from, to, tmp); • printf("원판 %d을 %c에서 %c으로 옮긴다.\n",n, from, to); • hanoi_tower(n-1, tmp, from, to); • } • } • intmain(void) • { • hanoi_tower(4, 'A', 'B', 'C'); • }

  9. 함수의 순환구조와 반복구조 • 아래의 주메뉴에 대한 기능을 구현하세요. • 주메뉴와 서브메뉴로 구성하면 더 좋겠습니다. • 지금까지구현하는 모든 함수들을 my_function.c(h)에 추가하고 • 각 함수들을 call 하는 함수도 만들어 두어서 관리하면 더 좋겠습니다. ^^ • MinGW에서 작업한 source들 : C:\MinGW\msys\1.0\home\사용자이름\

More Related