1. 변수와 상수
- 변수(Variables) : 데이터가 저장되는 메모리를 칭하는 것으로, 그 데이터 '값' 은 변경 될 수 있다.
- 상수(Constant) : 데이터의 한 종류로 '프로그램 내부에서 변하지 않는 값'을 의미한다.'
2. 변수의 선언(Declaration)
- 원하는 데이터를 저장하는 '공간:메모리' 를 확보하고 그 메모리의 이름을 결정하는 것.
3. 변수의 초기화(Initialize)
- 변수의 선언 후 확보된 '공간:메모리' 에 우리가 원하는 '기준, 시작값'으로 초기화 하여 사용해야 한다.
예제 1. HP회복
#include "stdio.h"
void main()
{
int HP = 100;
float Exp = 2325.12f;
HP++;
printf("체력=%d, 경험치=%f\n", HP, Exp);
}
결과 보기
int HP = 100;
- int(정수)형의 메모리를 HP라는 이름으로 확보 후 100의 값으로 초기화 한다.
float Exp = 2325.12f;
- float(실수)형의 메모리를 Exp라는 이름으로 확보 후 2325.12f의 값으로 초기화 한다.
- float형으로 선언되는 값은 뒤에 f가 붙어야 한다.
HP++
- 변수 HP의 값에 1을 더한다. 이는 HP = HP + 1; 과 동일하다.
예제 2. 변수1
#include "stdio.h"
void main()
{
int hp;
int aLv;
int dLv;
hp = 40;
aLv = 3;
dLv = 3;
printf("HP:%d, AttackLv:%d, DefenseLv:%d\n", hp, aLv, dLv);
printf("저글링의 공격!\n");
hp -= 10;
printf("HP:%d, AttackLv:%d, DefenseLv:%d\n", hp, aLv, dLv);
}
결과 보기
예제 3. 변수 2(머드 게임형태)
#include "stdio.h"
#include "windows.h" // sleep() 사용을 위해
void main()
{
int HeroLv = 1;
int HeroExp = 0;
printf("[info] 게임을 시작합니다.\n");
Sleep(1000);
printf("[info] Lv:%d Exp:%d\n", HeroLv, HeroExp);
Sleep(1000);
printf("[info] 적 '일개미' 와 조우합니다!!!\n");
Sleep(1000);
printf("[info] 주인공의 선제공격!! 찌르기를 시도합니다.\n");
Sleep(1000);
HeroExp += 100;
printf("[info] 적 '일개미' 를 쓰러트렸습니다. 경험치 +100\n");
Sleep(1000);
printf("[info] Lv:%d Exp:%d\n", HeroLv, HeroExp);
Sleep(1000);
printf("[info] 보스 '거대 개미' 등장!\n");
Sleep(1000);
printf("[info] 하지만 보스는 잠들어있다.\n");
Sleep(1000);
printf("[info] 주인공 필살기 '컴배트 실버' 사용!\n");
Sleep(1000);
HeroExp += 1000;
printf("[info] 보스 '거대 개미' 를 쓰러트렸습니다. 경험치 +1000\n");
Sleep(1000);
HeroLv++; // 경험치가 1000 이상이 되면 레벨업
printf("[info] 주인공 레벨업!!\n");
Sleep(1000);
printf("[info] Lv:%d Exp:%d\n", HeroLv, HeroExp);
Sleep(1000);
}
결과 보기
Sleep(1000);
- 1000밀리세컨드, 즉 1초동안 딜레이를 갖는다.
예제 4. 기호상수(예제 3 이용)
#include "stdio.h"
#include "windows.h" // sleep() 사용을 위해
#define SLEEP_TIME 100 // 기호상수 선언
void main()
{
int HeroLv = 1;
int HeroExp = 0;
printf("[info] 게임을 시작합니다.\n");
Sleep(SLEEP_TIME);
printf("[info] Lv:%d Exp:%d\n", HeroLv, HeroExp);
Sleep(SLEEP_TIME);
printf("[info] 적 '일개미' 와 조우합니다!!!\n");
Sleep(SLEEP_TIME);
printf("[info] 주인공의 선제공격!! 찌르기를 시도합니다.\n");
Sleep(SLEEP_TIME);
HeroExp += 100;
printf("[info] 적 '일개미' 를 쓰러트렸습니다. 경험치 +100\n");
Sleep(SLEEP_TIME);
printf("[info] Lv:%d Exp:%d\n", HeroLv, HeroExp);
Sleep(SLEEP_TIME);
printf("[info] 보스 '거대 개미' 등장!\n");
Sleep(SLEEP_TIME);
printf("[info] 하지만 보스는 잠들어있다.\n");
Sleep(SLEEP_TIME);
printf("[info] 주인공 필살기 '컴배트 실버' 사용!\n");
Sleep(SLEEP_TIME);
HeroExp += 1000;
printf("[info] 보스 '거대 개미' 를 쓰러트렸습니다. 경험치 +1000\n");
Sleep(SLEEP_TIME);
HeroLv++; // 경험치가 1000 이상이 되면 레벨업
printf("[info] 주인공 레벨업!!\n");
Sleep(SLEEP_TIME);
printf("[info] Lv:%d Exp:%d\n", HeroLv, HeroExp);
Sleep(SLEEP_TIME);
}
결과 보기
예제 5. 문자변수
#include "stdio.h"
void main()
{
int HP;
char Lv;
char Name[80];
HP = 40;
Lv = 'F';
Name[0] = 'S';
Name[1] = ' ';
Name[2] = 'o';
Name[3] = ' ';
Name[4] = 'n';
Name[5] = ' ';
Name[6] = 'g';
Name[7] = '\0';
printf("Name:%s\n", Name);
printf("HP:%d\n", HP);
printf("Lv:%c\n", Lv);
}
결과 보기
예제 6. 문자변수 2
#include "stdio.h"
#include "string.h" // strcpy() 사용
void main()
{
int HP = 40;
char Lv = 'A';
char Weapon[80] = "드래곤슬레이어"; // 일반 배열방식
char HeroName[] = "Seong Gook"; // 크기 미지정 방식
char* Armor = "풀 플레이트 메일"; // 포인터 방식
printf("Name : %s\n", HeroName);
printf("HP : %d\n", HP);
printf("Lv : %c\n", Lv);
printf("Weapon : %s\n", Weapon);
printf("Armor : %s\n", Armor);
strcpy(Weapon, "해골기사의 검");
puts(".................");
printf("Name : %s\n", HeroName);
printf("HP : %d\n", HP);
printf("Lv : %c\n", Lv);
printf("Weapon : %s\n", Weapon);
printf("Armor : %s\n", Armor);
}
결과 보기
예제 7. 문자변수3 (문자열 초기화)
#include "stdio.h"
#include "string.h"
void main()
{
int HP = 50;
char Lv = 'A';
char HeroName[80] = "";
char HeroinName[80] = "";
puts("주인공의 이름을 입력하세요.");
gets(HeroName);
puts("여주인공의 이름을 입력하세요.");
scanf("%s", HeroinName);
puts("...............");
printf("주인공 : %s\n", HeroName);
printf("Lv : %c\n", Lv);
printf("HP : %d\n", HP);
printf("여주인공 : %s\n", HeroinName);
}
결과 보기