게임개발 캠프 3일차

IIRU·2026년 5월 18일

< 전역, 지역변수 >

전역변수란? 코드 전체에서 사용할 수 있는 변수
지역변수란? 스코프내에서 사용할 수 있는 변수

전역변수와 지역변수 사용법을 보자면

#include<iostream>

using namespace std;

int tNUM; //전역변수

int main(){
	int num = 1; //지역변수
    tNUM = 20;
}

차이를 아시겠나요?
전역변수는 함수에서 쓰게될 때 다시 선언하지 않아도 됩니다.

< 함수 >

함수는
자료형 변수명(int n){

}

void PrintNum(int i) {
	cout << i << endl;
}

int Sum(int i, int j) {
	return i + j;
}

이렇게 선언 할 수 있습니다.

main함수에서 사용할 때는 함수명(i);

PrintNum(num);

이렇게 사용할 수 있습니다.

전체 소스코드 입니다!

#include<iostream>

using namespace std;

int tNUM; //전역변수

void PrintNum(int i) {
	cout << i << endl;
}

int Sum(int i, int j) {
	return i + j;
}

int main() {

	//파일이름도 한글 안쓰는걸 추천
	//코드상에서 한글을 써도 되는 부분
	//1. 주석
	//2. 문자열
	//int 정수 << 할 수 있지만 하지마세요

	//ctrl+rr 누르면 코드 내에 있는 변수명 한번에 바꿀수있음.
	int aa; // 지역변수
	tNUM = 20;

	//함수
	int num = 1;
	int num2 = 20;
	PrintNum(num);
	//함수나 변수에 f12누르면 그 변수나 함수 위치에 갈수 있음

	cout << Sum(num, num2) << endl;



	return 0;
}

함수 실습과제

간단한 계산 시스템 만들기

#include<iostream>

using namespace std;

int Sum(int a, int b) {
	return a + b;
}
int Mul(int a, int b) {
	return a * b;
}
int Sub(int a, int b) {
	return a - b;
}
int Div(int a, int b) {
	return a / b;
}


int main() {

	int num = 20;
	int num2 = 10;

	cout << Sum(num, num2) << endl;
	cout << Mul(num, num2) << endl;
	cout << Sub(num, num2) << endl;
	cout << Div(num, num2) << endl;

	return 0;
}

이렇게 처음 제출했으나 div는 0이 나눠질 수 없다는 사실을 깨달았습니다.
그래서 저 부분을

int Div(int a, int b) {
	if(a != 0 && b != 0){
    	return a / b;
    }
    else{
    	cout << "0 error";
	}
}

이렇게 바꾸어 주었습니다.


< 배열 >

배열 선언 방식은 자료형 변수명[숫자] 로 구성되어있다.

int num[5] = { 10,20,30,40,50 };
char ch[10];
float fl[10];
double db[10];
bool b[10];

숫자는 상수로 이루어져있으며 변수는 들어갈 수 없다.
하지만 변수처럼 할 수 있는 방법이 있습니다.

const int size1 = 10; //const를 붙이면 상수로 바뀜
int num1[size1]; //이렇게 사용가능

const를 쓰면 변수가 상수로 변환되서 위처럼 사용이 가능합니다.

이차원배열도 사용이 가능합니다.

int n[5][5] = {	{ 0,1,2,3,4 },
					{ 5,6,7,8,9 }
								 }; //이차원배열

< 문자열 >

문자열은 문자들이 배열로 이루어진 것입니다.
사용법은 string 변수명 입니다.

string str;
str = "string";

string에는 여러 함수를 사용할 수 있는데

간단하게 몇개 보자면

cout << str.at(1) << endl; //맨앞글자 출력
cout << str.length() << endl; //문자열 길이 출력
	
str.front(); //가장 앞의 char형 반환
str.empty(); //str이 비어있는지 확인 bool형 반환

//str.find("tr"); //"tr" 찾기
//str.replace(0, 3, str2); //글자 위치 바꾸기

여러가지 더 있지만 수업시간에 다룬 함수는 여기까지 입니다.

전체 소스코드 입니다.

#include<iostream>

using namespace std;

int main() {

	//int t = 10;
	//int num1[t] << 이렇게는 안됌.

	const int size1 = 10; //const를 붙이면 상수로 바뀜
	int num1[size1]; //이렇게 사용가능

	int num[5] = { 10,20,30,40,50 };

	int size = sizeof(num) / sizeof(int);

	for (int i = 0; i < size; i++) {
		cout << num[i] << endl;
	}

	//배열의 한계
	//1. 크기 변화 불가능 num[5] -> 에러
	//2. 배열 크기 확인 귀찮음. -> sizeof로 알아내야함
	//3. 한번에 초기화 불가능


	char ch[10];
	float fl[10];
	double db[10];
	bool b[10];

	int n[5][5] = {	{ 0,1,2,3,4 },
					{ 5,6,7,8,9 }
								 }; //이차원배열

	//문자열
	//문자 + 배열

	char c[10];
	string str;
	str = "string";
	string str2 = "test";
	
	cout << str.at(1) << endl;
	cout << str.length() << endl;
	
	str.front(); //가장 앞의 char형 반환
	str.empty(); //str이 비어있는지 확인 bool형 반환

	//str.find("tr");
	//str.replace(0, 3, str2);




	return 0;
}
profile
초보 개발자 블로그입니다!

0개의 댓글