반복문의 기능 반복문 반복문 특정 영역을 특정 조건이 만족하는 동안에 반복 실행하기 위한 문장 while문

Slides:



Advertisements
Similar presentations
C 언어 컴퓨터학과 C 언어 ( STS ) (Chap5. Selection-Making Decisions ) C 언어.
Advertisements

제6장 조건문.
슬라이드 1~21까지는 각자 복습! 슬라이드 22부터는 수업시간에 복습
쉽게 풀어쓴 C언어 Express 제11장 포인터 C Express.
C++ Espresso 제2장 제어문과 함수.
9장. C 언어의 핵심! 함수. 9장. C 언어의 핵심! 함수 9-1 함수의 정의와 선언 main 함수 다시 보기 : 함수의 기본 형태 { } 그림 9-1.
제 4장 문 장 배정문 혼합문 제어문 표준 입출력.
C 프로그래밍.
C 6장. 함수 #include <stdio.h> int main(void) { int num;
쉽게 풀어쓴 C언어 Express 제8장 함수 C Express Slide 1 (of 26)
쉽게 풀어쓴 C언어 Express 제4장 변수와 자료형 C Express.
제5장 제어명령
C언어: 배열 (Arrays).
처음으로 배우는 C 프로그래밍 제2부 기초 제5장 반복문.
쉽게 풀어쓴 C언어 Express 제3장 C프로그램 구성요소 C Express.
6장. printf와 scanf 함수에 대한 고찰
누구나 즐기는 C언어 콘서트 제4장 수식과 연산자.
7. while 문의 흐름 제어.
연산자 대입 연산자 산술 연산자 관계 연산자 논리 연산자 비트 연산자 콤마 연산자 축약 연산자 sizeof 연산자
윤성우의 열혈 C 프로그래밍 윤성우 저 열혈강의 C 프로그래밍 개정판 Chapter 02. 프로그램의 기본구성.
기초C언어 제3주 C프로그램 구성요소, 변수와 자료형 컴퓨터시뮬레이션학과 2016년 봄학기 담당교수 : 이형원
컴퓨터 프로그래밍 기초 - 2nd : scanf(), printf() 와 연산자 -
쉽게 풀어쓴 C언어 Express 제3장 C프로그램 구성요소 C Express.
Chapter 06. 선택문.
C언어 프로그래밍의 이해 Ch05. 명령문 Phylogenetic: 계통, 발생(학)의.
제 3 장 상수와 변수
쉽게 풀어쓴 C언어 Express 제7장 반복문 C Express.
5주차: Functions in C.
쉽게 풀어쓴 C언어 Express 제4장 변수와 자료형 C Express.
4장 제어문 선택문: if 문, if – else 문, switch 문
쉽게 풀어쓴 C언어 Express 제4장 변수와 자료형 C Express.
C 4장. 연산자 #include <stdio.h> int main(void) { int num;
개정판 누구나 즐기는 C언어 콘서트 제6장 반복문 출처: pixabay.
컴퓨터 개론 및 실습 Dept. Computer Eng. Hankuk University of Foreign Studies
C언어 프로그래밍의 이해 Ch13. 선행처리기와 주석문.
컴퓨터의 기초 제 2강 - 변수와 자료형 , 연산자 2006년 3월 27일.
제 6장 함수 Hello!! C 언어 강성호 김학배 최우영.
자전거를 배우려면 안장에 올라가 페달을 밟아라.
11장. 1차원 배열 IT응용시스템공학과 김 형 진 교수.
컴퓨터 프로그래밍 기초 - 4th : 수식과 연산자 -
함수와 변수 컴퓨터시뮬레이션학과 2016년 봄학기 담당교수 : 이형원 E304호,
제어문 & 반복문 C스터디 2주차.
4장 - PHP의 표현식과 흐름 제어-.
윤성우의 열혈 C 프로그래밍 윤성우 저 열혈강의 C 프로그래밍 개정판 Chapter 09. C언어의 핵심! 함수!
3장. 변수와 연산자. 3장. 변수와 연산자 3-1 연산자, 덧셈 연산자 연산자란 무엇인가? 연산을 요구할 때 사용되는 기호 ex : +, -, *, / 3-1 연산자, 덧셈 연산자 연산자란 무엇인가? 연산을 요구할 때 사용되는 기호 ex : +, -, *, /
게임프로그래밍 I - 1차원 배열 - 공주대학교 게임디자인학과 박 찬 교수 2011년 4월 25일.
Java의 정석 제 4 장 조건문과 반복문 Java 정석 남궁성 강의
Chapter 11. 배열과 포인터.
실습과제 1(조건문, ) 표준입력으로 수축기 혈압을 입력 받아 그에 따른 적당한 표현을 화면에 출력하는 프로그램을 if-else 문을 이용하여 작성.
Fflush 사용이유 및 방법 [이유] 키보드에서 입력된 내용은 입력버퍼에 저장되었다가 Enter 키가 들어오면 프로그램으로 전달됨 이 때 입력버퍼에 있는 Enter 키도 프로그램으로 전달됨 그러므로 아래와 같은 프로그램에서 문자 하나를 입력해도 Enter키도 입력된 것으로.
6장 반복제어문 for 문 while 문 do while 문 기타 제어문.
누구나 즐기는 C언어 콘서트 제2장 기초 사항 IT응용시스템공학과 김형진 교수.
9장. C 언어의 핵심! 함수. 9장. C 언어의 핵심! 함수 9-1 함수의 정의와 선언 main 함수 다시 보기 : 함수의 기본 형태 { } 그림 9-1.
C언어 프로그래밍의 이해 Ch05. 명령문.
-Part1- 제7장 반복문이란 무엇인가.
-Part1- 제8장 조건문이란 무엇인가 (교재 199페이지 ~ 224페이지)
쉽게 풀어쓴 C언어 Express 제3장 C프로그램 구성요소 C Express Slide 1 (of 25)
쉽게 풀어쓴 C언어 Express 제6장 조건문 C Express Slide 1 (of 28)
윤성우의 열혈 C 프로그래밍 윤성우 저 열혈강의 C 프로그래밍 개정판 Chapter 08. 조건에 따른 흐름의 분기.
쉽게 풀어쓴 C언어 Express 제6장 조건문 C Express.
9장. C 언어의 핵심! 함수. 9장. C 언어의 핵심! 함수 9-1 함수의 정의와 선언 main 함수 다시 보기 : 함수의 기본 형태 { } 그림 9-1.
3주차: Control Flow and Others
어서와 C언어는 처음이지 제16장.
C 4장. 연산자 #include <stdio.h> int main(void) { int num;
C.
printf("Global Korea\n");
배열, 포인터, 함수 Review & 과제 1, 2.
프로그래밍 기법 최적화 프로그래밍.
11장. 1차원 배열.
Presentation transcript:

반복문의 기능 반복문 반복문 특정 영역을 특정 조건이 만족하는 동안에 반복 실행하기 위한 문장 while문 do ~ while문 for문

while문 while 문 while(반복조건) // 반복 조건이 될 때까지 { // 반복내용을 반복실행 반복내용 } i=0; { // 반복내용을 반복실행 반복내용 } i=0; while( i<3) { printf("%d \n",i); i++; }

while 문의 중괄호 무한 루프(반복) while 문 반복하고자 하는 영역이 둘 이상의 문장으로 구성되는 경우에 필수 반복하고자 하는 영역이 둘 이상의 문장으로 구성되는 경우에 필수 무한 루프(반복) 반복의 조건이 true가 되므로 무한정 반복 while(i<10) printf("Hello World! \n"), i++; while( 1 ) // 반복의 조건 대신 0 이 아닌 정수를 넣는다. { printf("Hello World! \n"); i++; }

while문 예제 while 문 #include <stdio.h> int main(void) { int i=0; printf("Hello World! \n"); i++; } return 0;

연습문제 1. 사용자로부터 원하는 반복횟수를 입력 받아서 반복횟수 만큼 “Hello World!를 출력하는 프로그램을 작성 2. 사용자로부터 정수 n을 입력 받고 정수 n의 구구단을 출력하는 프로그램 작성 (예 n이 5인 경우 5단을 출력시키는 프로그램 작성)

while 문의 중첩 중첩 while 문 while문 안에 while문을 포함시킨다는 뜻 반복 구조 내에서 또 하나의 반복 구조 형성

중첩 while 문의 예제 중첩 while 문 void main(void) { int i=0, j=0; while(i<2) printf("*** 현재 i는 %d *** \n", i); while(j<2) printf("*** 현재 j는 %d *** \n", j); j++; } i++; j=0; }

연습문제 1.중첩 와일문을 사용하여 구구단을 2단부터 9단까지 출력하는 프로그램을 작성하시오

do~while문 while문 do~while문 do~while문은 일단 한번 실행하고 나서 조건 검사를 진행 조건이 만족되지 않으면 루프를 한번도 실행 안됨

do ~ while문 사용 예 do~while문 do { 반복내용 }while(반복조건); do { printf(“Hello world! \n”); i++; } while(i<10);

do ~ while문 예제 do~while문 int main(void) { int val; int i=1; printf("출력하고자 하는 구구단, 몇단? "); scanf("%d", &val); do printf("%d*%d=%d \n", val, i, val*i); i++; }while(i<10); return 0; }

do ~ while문 예제 do~while문 /* add_end.c */ #include <stdio.h> int main(void) { int total=0; int val=0; do printf("숫자 입력 (0 to quit) : "); scanf("%d", &val); total+=val; }while(val!=0); printf("Total : %d \n", total); return 0; }

연습문제 사용자로부터 원하는 정수 n을 입력 받고 n의 구구단을 역순으로 출력하는 프로그램을 작성 (조건. 반복문은 do ~ while 문을 사용한다) 사용자가 7을 입력하면 7단이 역순으로 출력된다.

for 문 for문 초기문, 조건문, 증감문 모두를 기본적으로 포함! 가장 많이 사용되는 반복문

for 문 For문과 while문의 비교

for 문 For문의 반복 과정의 이해

for문 예제 for 문 #include <stdio.h> int main(void) { int i; for(i=0; i<10; i++) printf(“Hello World! \n”); } return 0;

for문 예제 for 문 #include <stdio.h> void main(void) { int total=0; int i, n; printf("0 부터 n까지의 덧셈, n은?"); scanf("%d", &n); for(i=0; i<n+1; i++) total+=i; printf("0부터 %d까지의 덧셈결과: %d\n", n, total) ; }

for문 예제 for 문 void main(void) { float total=0.f, input=0.f; int count=0; for(; input>=0.0f; ){ printf("양의 실수 입력(minus to quite):"); scanf("%f", &input); total+=input; count++; printf("지금까지의 평균: %f\n", total/count); }

for문 예제 for 문 void main(void) { int a, b; for( ; ; ){ printf("두 개의 정수 입력:"); scanf("%d %d", &a, &b); printf("두 수의 합: %d\n", a+b); }

for문 중첩예제 중첩 for 문 void main(void) { int row, col; for(row=0 ; row<3; row++){ printf("*** 현재 row는 %d ***\n:", row); for(col=0; col<2; col++){ printf("현재 col는%d\n", col); }

연습문제 1. 두 개의 정수를 입력 받아서 그 사이에 존재하는 정수들의 합을 구하는 프로그램 작성 예) 3, 5를 입력 받으면 3+4+5가 답 조건) 첫 번째 입력 받은 숫자보다 두 번째 입력 받은 숫자가 더 큼 2. 중첩 for문을 사용하여 구구단 2단부터 9단까지 출력하는 프로그램을 작성하시오.

상황에 흐름의 분기 제어문 두개의 실수 입력 덧셈기능 나눗셈기능 뺄셈기능 곱셈기능 두개의 실수 입력 덧셈기능 나눗셈기능 원하는 연산

if문에 의한 조건문 if 문 “만약에 어떠한 조건이 만족된다면” 조건이 만족되는 경우에 한해서 실행 if(실행조건) { 실행하고자 하는 내용 }

if문 예제 if 문 void main(void) { int val; printf("정수를 하나 입력하세요:"); scanf("%d", &val); if(val<0) printf("입력 값은 0보다 작다\n"); if(val>0) printf("입력 값은 0보다 크다\n"); if(val==0) printf("입력 값은 0이다\n"); }

if문 예제 if 문 #include <stdio.h> if(opt==2){ result=val1 - val2; void main(void) { int opt; float val1, val2, result; printf("덧셈 1, 뺄셈 2, 곱셈 3, 나눗셈 4 \n"); printf("선택?:"); scanf("%d", &opt); if(opt>4) printf("잘못 선택 하셨습니다"); printf("두개의 실수 입력하세요:"); scanf("%f %f", &val1, &val2); if(opt==1){ result=val1+val2; printf("결과: %f \n", result); } if(opt==2){ result=val1 - val2; printf("결과: %f \n", result); } if(opt==3){ result=val1 * val2; if(opt==4){ result=val1 / val2;

if문 예제 if 문 #include <stdio.h> int main(void) { int i; for(i=1; i<100; i++) if(i%3==0 && i%4==0) printf("3의배수이자4의배수: %d \n", i); } return 0;;

if~else if~else if문장과 더불어 하나의 문장을 구성하여 사용 if(조건) { 조건 만족 시 } else 조건 불만족 시

if~ else 문 예제 if~else void main(void) { int val; printf("정수를 하나 입력하세요:"); scanf("%d", &val); if(val<0) printf("입력 값은 0보다 작다\n"); else printf("입력 값이 0이거나 그 보다 크다\n"); }

if, else if, else if, else if, else if(조건 A) { 조건 A 만족 시 실행 “요거” } else if(조건 B) 조건 B 만족 시 실행 “이거” else if(조건 C) 조건 C 만족 시 실행 “그거” else 조건 A, B, C 불만족 시 실행 “저거”

if, else if, else if, else if, else 예제 else if(opt==2){ #include <stdio.h> void main(void) { int opt; float val1, val2, result; printf("덧셈 1, 뺄셈 2, 곱셈 3, 나눗셈 4 \n"); printf("선택?:"); scanf("%d", &opt); printf("두개의 실수 입력하세요:"); scanf("%f %f", &val1, &val2); if(opt==1){ result=val1+val2; printf("결과: %f \n", result); } else if(opt==2){ result=val1 - val2; printf("결과: %f \n", result); } else if(opt==3){ result=val1 * val2; else if(opt==4){ result=val1 / val2; else printf("잘못 선택 하셨습니다");

조건 연산자(삼항 연산자) 조건 연산자 if~else문을 간결히 표현하는데 사용 조건이 true이면 A 조건 ? A : B 조건이 false이면 B 조건 ? A : B y<0이 true이면 x=10 y>=0이 false이면 x=20 X=(y<0)? 10: 20 y>0이 true이면 x=a*b y<=0이 false이면 x=a/b X=(y>0)? a*b: a/b

조건 연산자 예제 조건 연산자 void main(void) { int x; char ch; printf("정수 입력:"); scanf("%d", &x); ch=(x<0) ? '-' : '+'; (ch=='+') ? printf("양수\n") : printf("음수\n"); printf("절대값 %d \n", (x<0)? -1*x: x); }

연습문제 1. 1부터 99사이에 있는 정수 중에서 7의 배수이거나 9의 배수인 정수를 출력하는 프로그램을 작성. 단! 7의 배수이자 9의 배수인 수는 한번만 출력 2. 두 개의 정수를 입력 받아서 두수의 차를 계산하는 프로그램 작성. 단, 무조건 큰 수에서 작은 수를 뺀 결과를 출력!, 만약에 4, 16이라면 16-4로 계산 값은 무조건 양수! (단 삼항 연산자 사용)

루프생략과 탈출: continue, break break & continue 루프생략과 탈출: continue, break break: 반복문을 빠져 나올 때 사용 continue: 다음 번 반복으로 넘어 갈 때 사용

continue 와 break 예제 break & continue void main(void) { int sum=0; int num=0; while(1) sum+=num; if(sum>5000) break; num++; } printf("sum:%d\n", sum); printf("num:%d\n", num);

continue 와 break 예제 break & continue void main(void) { int i; printf("start! \n"); for(i=0; i<20; i++) if(i%2==0 || i%3==0) continue; printf("%d\n", i); } printf("end!\n");

연습문제 For문을 사용하여 1~100까지의 짝수의 합만을 구하고 그 합이 1000 <실행결과> i 값이 64일 때 합이 1000을 넘었습니다.

switch 문 switch문의 구조

switch 문 Switch문에서의 break 의미

switch문 예제 switch 문 #include <stdio.h> void main(void) { int n; printf("정수를 하나 입력 하세요(1-5) : "); scanf("%d", &n); switch(n) case 1: printf("1이 선택 되었습니다.\n"); break; case 2: printf("2가 선택 되었습니다.\n"); case 3: printf("3이 선택 되었습니다.\n"); case 4: printf("4가 선택 되었습니다.\n"); case 5: printf("5가 선택 되었습니다.\n"); default: printf("선택이 잘못 되었습니다.\n"); }

switch 문 switch vs. if~else 1 분기의 경우 수가 많아지면 가급적 switch문으로...

switch 문 switch vs. if~else 2 switch문에서는 비교 연산이 올 수 없다.

연습문제 if 문으로 프로그램한 계산기 프로그램을 스위치 문으로 프로그램을 작성하시오. 1 ~ 5 까지의 하나의 정수를 입력하면 해당하는 영어를 출력하시오. 입력 1: ONE 입력 2: TWO 입력 3: THREE 입력 4: FOUR 입력 5: FIVE 그 외 수: I don’t know

int main(void) { 함수의 몸체 } main 함수 다시 보기 : 함수의 기본 형태 함수 반환형태 함수이름 입력 인자 함수시작 함수 끝

함수를 정의하는 이유 4가지 형태의 함수 함수 모듈화에 의한 프로그램의 질 향상이 가능 유지 보수 및 확장의 용이성 문제 해결의 용이성 : "Divide and Conquer!" 4가지 형태의 함수 전달 인자 有, 반환 값 有 전달 인자 有, 반환 값 無 전달 인자 無, 반환 값 有 전달 인자 無, 반환 값 無

전달 인자 有, 반환 값 有 함수 int Add(int i, int j) { int result = i+j; return result; }

함수 호출 과정의 이해 함수 1 2 3 4 5 int main(void) #include <stdio.h> int Add(int i, int j) { int result = i + j; return result; } int main(void) int d; d = Add(3, 4); printf("%d \n", d); return 0; #include <stdio.h> int Add(int i, int j) { int result = i + j; return result; } 3 4 int main(void) int d; d = Add(3, 4); printf("%d \n", d); return 0; 2 1 5

전달 인자 有, 반환 값 無 전달 인자 無, 반환 값 有 함수 void Result_Print(int val) { printf("덧셈에 대한 결과 : %d \n", val); printf("****** END ******** \n"); } 전달 인자 無, 반환 값 有 int Input(void) { int input; scanf("%d", &input); return input; }

전달 인자 無, 반환 값 無 함수 void Intro(void) { printf("****** START ****** \n"); printf("두개의 정수 입력 : "); }

함수 선언의 중요성 함수 컴파일러의 특성상, 함수는 호출되기 전에 미리 정의 #include <stdio.h> int Add(int i, int j) { int result = i + j; return result; } int main(void) int d; d = Add(3, 4); printf("%d \n", d); return 0; #include <stdio.h> int Add(int i, int j); int main(void) { int d; d = Add(3, 4); printf("%d \n", d); return 0; } int Add(int i, int j) int result = i + j; return result;

함수 선언의 의미 함수 이후에 정의될 함수에 대한 정보 제공 함수 원형 선언 함수 정의 #include <stdio.h> int Add(int i, int j); int main(void) { int d; d = Add(3, 4); printf("%d \n", d); return 0; } int Add(int i, int j) int result = i + j; return result; 함수 원형 선언 함수 정의

함수 예제 함수 int Add(int i, int j) { int result=i+j; return result; } int Input(void) int input; scanf("%d", &input); return input; void Result_Print(int val) printf("덧셈결과: %d\n", val); void Intro(void) printf("두 개의 정수 입력: "); #include <stdio.h> int Add(int a, int b); int Input(void); void Result_Print(int val); void Intro(void); int main(void) { int a, b; int output; Intro(); a=Input(); b=Input(); output = Add(a, b); Result_Print(output); return 0; }

함수 예제 함수 #include <stdio.h> int Large_Num(int a, int b); int main(void) { printf("3과 4중에서 큰 수는 %d 이다 \n", Large_Num(3, 4)); printf("7과 2중에서 큰 수는 %d 이다 \n", Large_Num(7, 2)); return 0; } int Large_Num(int a, int b) if(a>b) return a; else return b;

함수 예제 함수 #include <stdio.h> int Abso_Large(int a, int b); // 절대값이 큰 정수 반환 int Abso_Val(int val); // 전달 인자의 절대값을 반환 int main(void) { int a, b; printf("두 개의 정수 입력: "); scanf("%d %d", &a, &b); printf("%d와 %d중 큰 절대값: %d \n", a, b, Abso_Large(a, b)); return 0; } int Abso_Large(int a, int b) if(Abso_Val(a) > Abso_Val(b)) return a; else return b; int Abso_Val(int val) if(val<0) return val*(-1); else return val;

연습문제 1. 세 개의 정수를 입력 받아서 그 중 가장 큰 수를 반환하는 함수와 가장 작은 수를 반환하는 함수작성 이 함수들을 main문에 적용

변수의 특성에 따른 분류 변수 지역 변수(Local Variable) 전역 변수(Global Variable) 중 괄호 내에 선언되는 변수 전역 변수(Global Variable) 함수 내에 선언되지 않는 변수 정적 변수(Static Variable) 함수 내부, 외부 모두 선언 가능 레지스터 변수(Register Variable) 선언에 제한이 많이 따름

변수의 사용 범위 전역변수와, 지역변수로 나뉘는 차이 변수 변수선언 위치에 따라서 전역변수, 지역변수로 나뉨 메모리상 존재하는 기간 변수에 접근할 수 있는 영역 #include<stdio,.h> Int b=0 Int main(void) { Int a=10; }

지역 변수의 접근 범위 지역변수 지역 변수는 선언 된 함수 내에서만 접근 가능 범위 1 범위 2 int fct_one(void) { int one=0;    return 0; }   int fct_two(void) int two=0; 범위 1 범위 2

지역 변수의 메모리상 존재 기간 지역변수 1단계 Val=10 Memory 할당 int fct_one(void) { int one=10; return 0; } int fct_two(void) int one=20; int two=30; int main(void) int val=10; fct_one(); fct_two(); Memory 1단계 Val=10 int main(void) { int value=10; …… } 할당

지역변수 2단계 one=10 Val=10 Memory 할당 제거 int fct_one(void) int one=10; int main(void) { int value=10; fct_one(); …… } int fct_one(void) int one=10; return 0; Val=10 Memory one=10 할당 제거

지역변수 3단계 two=30 one=20 Val=10 Memory 할당 제거 int fct_two(void) int main(void) { int value=10; fct_one(); fct_two(); } int fct_two(void) int one=20; int two=30; return 0; 할당 제거 Val=10 Memory one=20 two=30

지역변수 4단계 Val=10 Memory 제거 int main(void) { int value=10; fct_one(); fct_two(); return 0; } 제거 Val=10 Memory

-while, for, if 와 같은 문장에 의해 형성되는 지역 내에서 선언되는 변수 지역변수 또 다른 형태의 지역 변수 -while, for, if 와 같은 문장에 의해 형성되는 지역 내에서 선언되는 변수 int main(void) { int i; for(…) … } if(…) return 0;

While, for, if문장에서의 지역 변수 지역변수 int main(void) { int i; for(i=0; i<3; i++) int a=0; a++; printf("%d번째 for 루프, 지역변수 a는 %d \n", i, a); } if(i==3) int a=10; printf("if문 내에 존재하는 지역 변수 a는 %d \n", a); return 0;

While, for, if문장에서의 지역 변수 지역변수 main문의 지역변수 if문의 지역변수 #include <stdio.h> int main(void) { int val=1; if(1) //무조건 true int val=0; val+=10; printf("if의 지역변수 val: %d\n", val); } printf("main의 지역변수 val: %d\n", val); return 0; main문의 지역변수 if문의 지역변수

지역 변수와 매개 변수 지역변수 매개 변수도 지역 변수의 일종이다. 매개변수 int fction (int a, int b) { return a+b; } 매개변수

전역 변수 전역 변수의 또 다른 특징 전역변수 프로그램 어디에서나 접근이 가능한 변수 특정 영역(함수, 반복문...)에 속하지 않는다. 프로그램이 종료될 때까지 존재 전역 변수의 또 다른 특징 같은 이름의 지역 변수에 의해서 가려지기도 한다.

전역 변수 예제 전역변수 #include <stdio.h> int val; void add(int n); int main(void) { printf("val : %d \n", val); add(3); printf("val: %d \n", val); val++; return 0; } void add(int n) val+=n;

같은 이름의 전역 변수와 지역 변수가 존재 전역변수 #include <stdio.h> int val; // 전역변수 val void fct(void); int main(void) { val=10; printf("val : %d \n", val); fct(); printf("val: %d \n", val); return 0; } void fct(void) int val=20; // 지역변수 val val++;

static 변수 보다 빠르게! register 변수 static 변수 함수 내부 및 외부에 선언 가능 한번만 초기화된다 : 전역 변수의 특징 함수 내부에서 선언될 경우 함수 내에서만 접근이 가능 : 지역 변수의 특징 보다 빠르게! register 변수 int main(void) { int a ; register int b; // 레지스터 변수 b 선언 . . . . .

static 변수 예제 static 변수 #include <stdio.h> void fct(void); int main(void) { int i; for(i=0; i<5; i++) fct(); return 0; } void fct(void) int val=0; // static int val=0; val++; printf("%d\n", val);

연습문제 1. 곱셈기능을 지니는 함수를 하나 구현하고 main 함수에서 호출하는 프로그램작성. 이러한 작업은 0을 두 개의 숫자를 입력할 때까지 계속 진행. 그리고, 프로그램이 종료되면 연산이 몇 번 하였는지 출력 <실행 예:> 두 개의 숫자 입력:1 3 연산결과: 3 두 개의 숫자 입력: 3 2 연산결과: 6 두 개의 숫자 입력: 0 0 총 2번 연산하였습니다.