메모리 영역 | 설명 |
---|---|
Code (Text) | 프로그램의 기계어 명령어가 저장되는 영역 |
Data | 초기화된 전역 변수와 static 변수들이 저장되는 영역 |
Heap | 동적 메모리 할당 시 사용하는 공간 (new 사용 시) |
Stack | 지역 변수 및 함수 호출 정보가 저장되는 LIFO 구조의 메모리 공간 |
#include <iostream>
using namespace std;
// cpu - ram - ssd
// ram : 데이터 저장 용도로 사용
// - code(text)
// - data
// - heap
// - stack
// 프로그램은 데이터와 로직으로 이루어짐
// 코드를 어떻게 묘사할 것인가
// 데이터를 가공하고 진행시키는 것만 잘하면 게임을 잘 만들 수 있음
// 내 캐릭터의 hp를 만들어서 관리
// 1. 공간을 확보
// 2. 공간 설정 후 데이터를 넣어줌
// 어떻게 공간을 확보해서 사용할까
// 사용하는 램 공간에도 주소값이 정해져 있음
// 다 알 필요는 없고
// 언어에서 제공하는 문법으로 코드만 만들어 주면됨
/// 따라서 변수를 알아야함
// 변수란?
// 일종의 상자
// 상자의 이름을 붙여줄 수 있음
// 변수로 메모리의 장소를 임대할 수 있음
// 메모리 장소에서 변수에 저장한 값을 꺼내올 수 있음
// 변수라는 상자의 개념을 알면 간접적으로 메모리를 사용할 수 있음
// 변수는 어떤 위치에 있느냐에따라서 code, data, heap, stack 영역으로 나뉨
/* 주석 문법 */
// 주석 문법
// 변수 문법
// 타입 이름;
// - 변수 이름은 영어로 짓는다
// - 숫자는 앞에 올 수 없다.
// ; 세미콜론은 문장 마지막을 의미함 없으면 문법 에러
// 데이터 타입은 무슨 의미냐
// 우선 컴퓨터는 0,1의 전기신호 밖에 읽지 못함
// 따라서 사용자가 어떤 타입을 저장할 것인지 명시해 줘야함
// 어떤 숫자인지 예) int -> 정수
// 타입의 크기
// char 1byte
// short 2byte
// int 4byte
// __int64 8byte
// signed vs unsigned
// - signed 부호 있음
// - unsigned 부호 없음
// 범위를 초과
// - 오버플로우 문제 생김
int hp; // 메모리 공간을 할당받고 이름을 hp로 매핑하여 사용하겠다라는 의미
// 정수로 받겠다는 의미
//int hp = 50; // 초기값과 동시에 초기화
int maxHp; // 컨벤션 스타일 여러가지가 있다. 회사에서 사용하는 컨벤션 참고 사용
//int str; // 4바이트 공간 확보
//int dex; // 4바이트 공간 확보
//short lawful; // 2바이트 공간 확보
// 램은 단순하게 데이터 저장하는데 활용 되는것
// 실질적인 어떤것인가 하는 명령을 하는 부분은 CPU가 함
int main()
{
// 메인함수 C++에서 시작하는 부분
// 여기서 코드 작업을 한다.
// hp에 값 대입
//hp = 50; // =는 같다의 의미가 아닌 오른쪽에 있는 상수를 변수에 대입한다는 의미
// 초기값을 한번에 주는 방법이 있음
// maxHp 초기화
maxHp = 200;
// 변수에 담긴 값을 불러오는 방법
//hp;// 불러오면 읽어옴
// hp에 maxHp를 넣어줌
hp = maxHp;
// 출력
cout << hp;
}
#include <iostream>
using namespace std;
int main()
{
cout << "HELLO WORLD";
return 0;
}
#include <iostream>
using namespace std;
int main()
{
cout << "HELLO WORLD";
return 0;
}
다음과 같이 출력하는 프로그램을 작성하세요:
@@@@
main()
std::cout << “@@@@”;
int main()
{
cout << "@@@@" << endl;
cout << "main()" << endl;
cout << "std::cout << “@@@@”;" << endl;
return 0;
}
다음과 같이 출력하는 프로그램을 작성하세요:
123###456
int main()
{
cout << "123###456" << endl;
return 0;
}
다음과 같이 출력하는 프로그램을 작성하세요.
(주의: ##
와 ##
사이에는 띄어쓰기 3칸이 들어갑니다)
CODING
## ##
std::cout “CODING”;
std::cout << std::endl;
std::cout << “## ##”;
int main()
{
cout << "CODING" << endl;
cout << "## ##" << endl;
cout << "std::cout “CODING”;" << endl;
cout << "std::cout << std::endl;" << endl;
cout << "std::cout << “## ##”;" << endl;
return 0;
}
다음과 같이 출력하는 프로그램을 작성하세요.
5 4 3 2 1 GO!
int main()
{
cout << "5 4 3 2 1 GO!" << endl;
return 0;
}
5
int main()
{
int a = 5;
cout << a << endl;
return 0;
}
t
를 선언하고 5를 저장하세요.t에서 1씩 증가=5 6 7
t에서 2씩 감소=5 3 1
int main()
{
int t = 5;
cout << "t에서 1씩 증가 = " << t << " " << t + 1 << " " << t + 1 + 1 << endl;
cout << "t에서 2씩 감소 = " << t << " " << t - 2 << " " << t - 2 - 2 << endl;
return 0;
}
a
, b
, c
3개를 선언하세요.a = 5
b = -1
c = 2
a, b, c 값은 각각 a는 5, b는 -1, c는 2 입니다
int main()
{
a = 5;
int b = -1;
int c = 2;
cout << "a, b, c 갑은 각각 a는" << a << ", b는 " << b << " c는 " << c << " 입니다" << endl;
return 0;
}
a
와 b
를 선언하세요.a
에는 7, b
에는 2 를 저장하세요.a+b=9
a-b=5
int main()
{
a = 7;
b = 2;
cout << "a+b=" << a + b<< endl;
cout << "a+b=" << a - b<< endl;
return 0;
}
k
와 g
를 선언하세요.k
에는 8, g
에는 4 를 저장하세요.8*4=32
8/4=2
int main()
{
int k = 8;
int g = 4;
cout << k << "*" << g << "=" << k * g << endl;
cout << k << "/" << g << "=" << k / g << endl;
return 0;
}
a
, b
, c
, d
를 선언하세요.a = 3
b = 5
c = 3
d = 4
((a + b) * c) / d
의 결과를 출력하세요.6
int main()
{
a = 3;
b = 5;
c = 3;
int d = 4;
cout <<"((a+b)*c)/d = "<< ((a + b) * c) / d << endl;
return 0;
}
a
를 선언하세요.a
에 8을 저장하세요.a
를 5번 곱한 값 (a의 5제곱)을 출력하세요.32768
int main()
{
cout << "문제12" << endl;
a = 8;
cout << a * a * a * a * a << endl;
return 0;
}
#include <iostream>
using namespace std;
int main()
{
int a;
a = 8;
cout << a;
a = a + 1;
a++;
a = 3;
a = a + 1;
a++;
cout << "a값은 : " << a << endl;
a = a + 1;
a++;
cout << "마지막 a값은 : " << a << endl;
return 0;
}
a
를 선언하세요.a
에 8을 저장하세요.a = a + 1
과 a++
을 적절히 이용하여 a
를 12로 만드세요.12
int main()
{
a = 8;
a++;
a = a + 1;
a++;
a++;
cout << a << endl;
cout << endl;
return 0;
}