오늘은 c++언어 실시간 강의 cp1중간까지 했고 내일까지 cp3까지 예습을 할것입니다.
배운내용
#include <stdio.h> // stdio는 공구통 이름. #include는 공구통을 포함시키라는 명령어.
int main(void)
{
printf("Hello, world!"); // stdio라는 공구통 안에 든 printf()라는 망치를 사용하는 예시.
return 0;
}
**중요코드입니다
탈출 문자열
| \n | 개행(New line) |
| \t | 탭(Tap) |
| \’ | 따옴표 출력 |
| \” | 쌍따옴표 출력 |
| \\ | 역슬래시 출력 |
| %% | % 출력 |
서식지정자
printf()함수 혹은 scanf()함수와 같은 입출력 합수들과 쓰여 양식에 맞게 입출력 할 수 있도록 도와주는 지정자 입니다.
서식지정자의 종류
1. %d: decimal의 약자. 10진수로 대체됩니다.
2. %o: octal의 약자. 8진수로 대체됩니다. ex) 9(10) <-> 11(8)
3. %x: hexadecimal의 약자. x는 소문자, X는 대문자로 대체됩니다. ex) 17(10) <-> 11(16)
4. %u: unsigned의 약자. 양수로 대체됩니다.
5. %c: character의 약자. 문자로 대체됩니다
6. %s: string의 약자. 문자열로 대체됩니다.
7. %f: floating point의 약자. single precision.
8. %if: double precision floating point.
3245 * 2342의 계산 결과를 화면에 출력시키기 위해 printf(”Result: %d”, 3245 * 2342)라고도 적을 수 있습니다.
복잡한 수식을 빠른 시간안에 계산하고 그 결과를 원하는 형식으로 보기 위함입니다.
예습내용
리터럴(Literal)
소수코드에 적힌 값 그 자체를 뜻
자료형(Type)
저장될 데이터의 크기와 해석 방법에 대한 정보.
| 자료형 | 크기 == 표현 가능한 수 | 서식 지정자 |
| char | 1 byte. -(2^7) ~ (2^7) - 1 [-128 ~ 127] |
%c or %hhd |
| short int | 2 byte. -(2^31) ~ (2^31) - 1 [-32768 ~ 32767] |
%hd |
| int [기본 정수 자료형] |
4 byte. -(2^31) ~ (2^31) - 1 [-2147483648 ~ 2147483647] |
%d or %i |
| long | 4 byte or 8 byte | %ld |
| long long | 8 byte -(2^63) ~ (2^63) - 1 | %lld |
| float | 4 byte 유효 자리수 6~7자리 [부호:1bit, 지수:8bit, 가수:23bit] |
%f |
| double [기본 실수 자료형] |
8 byte 유효 자리수 15~16자리 [부호:1bit, 지수:11bit, 가수:52bit] |
%if |
| long double | 8 byte 이 | %Lf |
변수 <-> 상수
자료형 변수명 = 값;
중요코드
#include <stdio.h> int main(void)
{
// 자료형 변수명 = 값; int Num = 2147483647; // 선언과 동시에 초기화
double PI; // 선언
printf("Num = %d\n", Num);
PI = 3.141592;
printf("PI = %lf\n", PI);
return 0;
}
unsigned 키워드와 signed 키워드
부호없는 vs 부호있는
unsigned를 자료형 앞에 붙히면 음수는 표현 불가능
=> 그대신 양수 부분이 2배 늘어납니다.
서식 지정자로는 %u를 쓰면 됩니다.
오버 플로우:
자료형이 표현가능한 수를 넘어서는 경우
ASCII
문자 형태의 데이터와 숫자 형태의 데이터 사이의 인코딩 규약 중 하나.
여러 인코딩 규약이 있으나, 그중 가장 쉽고 대표적인 규약.
scanf()
키보드로부터 데이터를 입력 받을 수 있게 해주는 함수.
#define _CRT_SECURE_NO_WARNINGS
// scanf() 함수를 쓸때는 이걸 정의해줘야 합니다.
// 다만 scanf() 함수는 stdio.h에 정의되어 있으므로, stdio.h 파일 인클루드 전에 정의해야 합니다.
#include <stdio.h>
int main(void)
{
int Num;
scanf("%d", &Num); // "Num에다가(&) %d 형식으로 입력받아라."
printf("%d", Num); // "Num을 %d 형식으로 출력해라."
return 0;
}
연산자와 피연산자
5+2에서 5,2가 피연산자 +가 연산자
**int자료형끼리 결과는 int
float 자료형끼리 결과는 float임을 주의
복합 대입 연산자
mul *= 3; // 동작자체는 mul = mul * 3; 코드와 똑같습니다.
증감 연산자, 논리 연산자, 비교 연산자
증가/감소의 줄임말. 단항의 피연산자를 가지는게 특징.
ex) ++Num; 증감 연산자에는 전치 증감 연산자와 후치 증감 연산자가 있습니다.
ex)
++N 바로1증가
N++ 다음 줄에 1증가
논리연산자
피연산자를 참 혹은 거짓으로 평가한 후에 논리 연산을 수행합니다.
계산된 결과값도 참 혹은 거짓입니다. 즉, 불대수(boolean) 연산자.
논리연산자의 종류
논리 곱 연산자(&&), 논리 합 연산자(||), 논리 반전 연산자(!)
논리연사자의 꿀팁에도 알아봤습니다.
이거 진짜 꿀팁입니다 . 밑 예시 처럼 생각하면 진리표를 외울 필요가 없습니다.
7 && 0; // == 1 * 0 == 0
-7 || 0; // == 1 + 0 == 1
Short-Circuit
&& 연산자에서 앞 쪽 피연산자가 false라면 뒤 쪽은 평가하지 않고 곧바로 false로 귀결됩니다.
|| 연산자에서 앞 쪽 피연산자가 true라면 뒤 쪽은 평가하지 않고 곧바로 true로 귀결됩니다.
&&는 곱셈입니다. 앞이 0이면 뒤는 뭐가 와도 그 결과가 false입니다.
그래서 뒤쪽은 평가하지도 않고 0입니다.
|| 연산도 덧셈이니, 앞이 1이면 뒤는 무슨 수가 와도 그 결과가 true입니다.
형변환 연산자
자료형 A에서 자료형 B로 변환 시켜주는 연산자.
명시적 형변환이라고도 부릅니다
ex)
5 / 2; // ==
(float)5 / 2; // == 5.0f / 2 == 2.5f
삼항 연산자
피연산자로 세 개의 항을 갖는 연산자.
조건문 if-else의 대용 가능.
조건문
단순 if문
#include <stdio.h>
int main(void)
{
int Num = 102;
if (Num < 102)
{
printf("Num < 102");
}
return 0;
}
if-else
조건식이 참 혹은 거짓, 모든 경우를 처리 할 수 있습니다.
#include <stdio.h>
int main()
{
int Num = 102;
if (Num < 105)
{
printf("Num < 105");
}
else
{
printf("105 <= Num");
}
return 0;
}
if-else if-else문
#include <stdio.h>
int main()
{
int Num = 102;
if (Num < 105)
{
printf("Num < 105");
}
else if (Num < 110)
{
printf("105 <= Num && Num < 110");
}
else
{
printf("110 <= Num");
}
return 0;
}
중첩 if문
#include <stdio.h>
int main()
{
int Num = 102;
if (Num < 105)
{
printf("Num < 105\n");
if (102 < Num)
{
printf("102 < Num && Num < 105");
}
else
{
printf("Num <= 102");
}
}
return 0;
}
switch-case문
switch-case문은 if-else if-else문으로 치환 가능합니다.
그럼에도 switch-case문을 사용하는 이유는 가독성 때문입니다.
반대로 if-else if-else문은 switch-case문으로 치환 불가능할 때가 있습니다.
특히 if-else if-else문의 조건식이 범위를 다루는 경우 불가능합니다.
#include <stdio.h>
int main()
{
int Num = 101;
switch (Num)
{
case 100:
printf("Num == 100");
break;
case 101:
case 102:
printf("Num == 101 || Num == 102");
break;
default:
printf("default");
break;
}
return 0;
}
여기까지 예습했습니다.
다음은 FPS게임 만들기 실습입니다.


우리가 게임에서 사용하는 wasd와 마우스를 돌려 화면을 움직이는 커맨드를 맵핑하였습니다.



까지 하였습니다.
'본캠프' 카테고리의 다른 글
| 4/24(코드카타,C++실시간강의,FPS강의) (1) | 2026.04.24 |
|---|---|
| 발표자료 (1) | 2026.04.23 |
| 4/23(코드 카타,FPS실시간강의) (0) | 2026.04.23 |
| 4/22 (코드카타,FPS게임,C++실시간 강의cp4) (0) | 2026.04.22 |
| 4/20 (1) | 2026.04.20 |