<함수값 반환하기>
#include <stdio.h>
//2개의 매개변수를 받아, 두개의 합을 반환
int plus(int a, int b) {
return a + b;
}
void main() {
int sum = plus(3, 5); //함수를 호출하면, 값으로 치환 되어 plus(3, 5)=8 의 값으로 처리
printf("%d", sum);
}
//결과 8
[01]
#include <stdio.h>
//전역변수
int itemCnt = 0;
int money = 100;
void buyItem() {
//아이템을 산다
itemCnt++;
money -= 10;
printf("아이템을 구매했습니다.\n");
printf("아이템 개수: %d\n", itemCnt);
printf("잔액: %d\n", money);
}
void main() {
buyItem(); //전역변수로 생성한 함수 호출
buyItem();
}
<결과>
아이템을 구매했습니다.
아이템 개수: 1
잔액: 90
아이템을 구매했습니다.
아이템 개수: 2
잔액: 80
[01-응용]
#include <stdio.h>
//전역변수
int itemCnt = 0;
int money = 100;
void buyItem(int cost, int cnt) { //int cost, int cnt 매개변수 (코스트, 한 묶음)
//아이템을 산다
itemCnt+=cnt;
money -= cost;
printf("아이템을 구매했습니다.\n");
printf("아이템 개수: %d\n", itemCnt);
printf("잔액: %d\n", money);
}
void main() {
buyItem(30, 5); //전역변수로 생성한 함수 호출 cost30 cnt5
//처음의 cost는 30, 따라서 money-=cost 머니에서 -30이 됨 =>70
buyItem(50, 7);
//그 다음의 cost는 50으로 호출 됨. 따라서 money=70 에서 -50 => 20
}
아이템을 구매했습니다.
아이템 개수: 5
잔액: 70
아이템을 구매했습니다.
아이템 개수: 12
잔액: 20
시간 날 때 마다 유튜브 보면서 문제 따라 풀고 있다
혼자서 문제 풀어보고 다른 사람이 어떻게 푸는지 보면
도움이 많이 되는거 같다
[전역변수]
모든 지역에서 접근이 가능한 변수, 중괄호로 묶지 않아야 한다
프로그램의 시작과 동시에 메모리 공간에 할당되어 종료할 때 까지 존재
<리턴 값이 1개여야 한다>
#include <stdio.h>
int noMeaning() {
printf("first\n");
return 1;
printf("second\n");
return 2; //c언어에서는 리턴을 만나게 되면 즉시 함수가 종료 됨. 따라서 리턴2는 안나옴
}
void main() {
int a;
a = noMeaning();
printf("반환 된 값: %d\n", a);
}
<결과>
first
반환 된 값: 1
c언어에서는 리턴을 만나게 되면 즉시 함수가 종료 됨. 따라서 리턴2는 안나옴
728x90
'Dev. > C++' 카테고리의 다른 글
함수의 이해 응용문제 (0) | 2022.03.28 |
---|---|
함수의 이해 기본예제/함수정의와 호출/지역변수 전역변수 (0) | 2022.03.28 |
배열과 포인터 종합문제 (0) | 2022.03.27 |
포인터 배열과 배열 포인터 (0) | 2022.03.27 |
포인터와 함수의 관계/call by value/call by reference (0) | 2022.03.27 |
댓글