๋ณธ๋ฌธ ๋ฐ”๋กœ๊ฐ€๊ธฐ
๐ŸŒฑ/๐ŸŒฑ๋ณต์Šต๐ŸŒฑ

221205_C์–ธ์–ด ๋ฌธ๋ฒ• (1์ผ์ฐจ)

by Nessie! 2022. 12. 5.

#include <stdio.h> //์ „์ฒ˜๋ฆฌ๊ธฐ

 

๋ฉ”์ธํ•จ์ˆ˜์˜ ๋ฐ˜ํ™˜ํ˜•์€
void๋กœ ํ•ด๋„ ์ƒ๊ด€ ์—†์œผ๋‚˜, int๋กœ ํ•ด์„œ ๋ฐ˜ํ™˜๊ฐ’์„ 0์œผ๋กœ ์ฃผ๋Š” ๊ฒƒ์ด ํ›จ์‹  ์•ˆ์ •์ ์ด๋‹ค.
void๋Š” ๋ฐ˜ํ™˜๊ฐ’์ด ์—†๊ธฐ๋•Œ๋ฌธ์— main ํ•จ์ˆ˜ ์ข…๋ฃŒ ํ›„ ๋ฐ˜ํ™˜๊ฐ’์ด ์žˆ๋Š” ๊ฒƒ์ด ์ข‹๋‹ค.

VS์—์„œ ํ•˜๋‹จ ์ถœ๋ ฅ๋ณด๊ธฐ๋ฅผ ๋นŒ๋“œ๋กœ ์„ค์ •ํ•ด์„œ ํ™•์ธํ•˜๋ฉด, warning์ด๋‚˜ ์˜ค๋ฅ˜์˜ ์›์ธ์ด ๋‚˜์˜ค๋Š”๋ฐ ์ตœ๋Œ€ํ•œ ์—†๊ฒŒ ์ฝ”๋“œ๋ฅผ ์ž‘์„ฑํ•˜๋ฉด ์ข‹๋‹ค.

์•ˆ์จ๋„ ์ •์ƒ์ ์œผ๋กœ ์‹คํ–‰๋˜์ง€๋งŒ ๋ฉ”์ธ์—์„œ๋งŒ ๊ฐ€๋Šฅํ•˜๋ฉฐ, ๋ฐ˜ํ™˜์„ ํ•ด์ฃผ๋Š” ๊ฒƒ์ด ์ข‹๋‹ค.

1byte == 8bit

์šด์˜์ฒด์ œ์˜ 64bit, 32bit๋Š” cpu๊ฐ€ ์ž‘์—…ํ•˜๋Š” ์ตœ์†Œ๋‹จ์œ„๋ผ๊ณ  ๋ณด๋ฉด๋œ๋‹ค.
ใ„ด intํ˜•์€ ํ”„๋กœ๊ทธ๋ž˜๋ฐ์˜ ์ตœ์ ์˜ ๋‹จ์œ„๋ผ๊ณ  ๋ณด๋ฉด๋˜๋ฉฐ, ์ž‘์—…์†๋„๊ฐ€ ๊ฐ€์žฅ ๋น ๋ฅด๋‹ค

[์ž๋ฃŒํ˜•(Variable)]

์ •์ˆ˜ํ˜•
ใ„ด char: 1byte / ํ‘œํ˜„๋ฒ”์œ„ -128~127
ใ„ด short: 2byte
ใ„ด int: 4byte
ใ„ด long: 4byte 
ใ„ด ์šด์˜์ฒด์ œ๋‚˜ ๋””๋ฒ„๊น… ํ™˜๊ฒฝ์ด ์ƒ์ดํ•ด์งˆ ๊ฒฝ์šฐ ๋‹ฌ๋ผ์งˆ ์ˆ˜๋„ ์žˆ๊ธดํ•จ (long์€ ์ฝ”ํ…Œ์—์„œ 8byte์ผ ํ™•๋ฅ ์ด ๋†’์Œ)
ใ„ด long long ์ด๋Ÿฐ์‹์œผ๋กœ 8byte์งœ๋ฆฌ ์ •์ˆ˜ํ˜•์œผ๋กœ ์“ด๋‹ค (์ž๋ฃŒํ˜• ์•ž์— ๋ถ™์—ฌ์„œ ์“ฐ๋Š” ๊ฒฝ์šฐ๊ฐ€ ๋งŽ์Œ)
ใ„ด long long ํ˜•์€ ์ฃผ๋กœ ์‹œ๊ฐ„์„ ๊ด€๋ฆฌํ•  ๋•Œ, ์„œ๋ฒ„ ํ†ต์‹ ํ•  ๋•Œ ์‚ฌ์šฉํ•œ๋‹ค.
ใ„ด long int๋Š” 4byte


์‹ค์ˆ˜ํ˜•
ใ„ด float: 4byte
ใ„ด double: 8byte

์ด์ง„๋ฒ•์€ ์†Œ์ˆ˜๋ฅผ ํ‘œํ˜„ํ•  ์ˆ˜ ์—†์Œ / ๋ถ€๋™์†Œ์ˆ˜์ ์„ ์‚ฌ์šฉํ•œ๋‹ค.

0.123 -> 123 * 10 -3์Šน ์ด๋ ‡๊ฒŒ ์ธ์‹ํ•จ 

๋ณ€์ˆ˜: ๋ณ€ํ•˜๋Š” ์ˆ˜


[์—ฐ์‚ฐ์ž(Operator)]

๊ธฐ๋ณธ์—ฐ์‚ฐ์ž
ใ„ด + ๋ง์…ˆ
ใ„ด - ๋บ„์…ˆ
ใ„ด * ๊ณฑ์…ˆ
ใ„ด / ๋‚˜๋ˆ—์…ˆ
ใ„ด % ๋‚˜๋จธ์ง€

๋Œ€์ž…์—ฐ์‚ฐ์ž
ใ„ด = : ๊ฐ’์„ ๋Œ€์ž…
ใ„ด += : 
ใ„ด -= : ๋ณธ์ธ ์Šค์Šค๋กœ์— ๋นผ์„œ ๋Œ€์ž…
ใ„ด *= : ๋ณธ์ธ ์Šค์Šค๋กœ์— ๊ณฑํ•ด์„œ ๋Œ€์ž…
ใ„ด /= : ๋ณธ์ธ ์Šค์Šค๋กœ์— ๋‚˜๋ˆ ์„œ ๋Œ€์ž…
ใ„ด %= : ๋ณธ์ธ ์Šค์Šค๋กœ์— ๋‚˜๋จธ์ง€๋ฅผ ๋Œ€์ž…

x = x + y๋ฅผ x += y; ๋กœ ์ค„์—ฌ์“ธ ์ˆ˜ ์žˆ๋‹ค. (๋‹ค๋ฅธ๊ฒƒ๋‘ ๋งˆ์ฐฌ๊ฐ€์ง€)

๋น„๊ต์—ฐ์‚ฐ์ž (๊ฐ’์€ 1 or 0 ์„ ๋ฐ˜ํ™˜ํ•œ๋‹ค)
ใ„ด == : ๊ฐ™๋‹ค
ใ„ด <, <= : ์ž‘๋‹ค, ์ž‘๊ฑฐ๋‚˜ ๊ฐ™๋‹ค
ใ„ด >, >= : ํฌ๋‹ค, ํฌ๊ฑฐ๋‚˜ ๊ฐ™๋‹ค
ใ„ด != : ๊ฐ™์ง€์•Š๋‹ค

๋…ผ๋ฆฌ์—ฐ์‚ฐ์ž(bool ๊ฐ’์„ ๋ฐ˜ํ™˜ํ•œ๋‹ค)
ใ„ด && : (๊ทธ๋ฆฌ๊ณ ) ๋‘˜ ๋‹ค ์ฐธ์ผ ๊ฒฝ์šฐ๋งŒ ์ฐธ์„ ๋ฐ˜ํ™˜
ใ„ด || : (๋˜๋Š”) ๋‘˜์ค‘ ํ•˜๋‚˜๋งŒ ์ฐธ์ผ ๊ฒฝ์šฐ๋งŒ ์ฐธ์„ ๋ฐ˜ํ™˜

๋น„ํŠธ์—ฐ์‚ฐ์ž
ใ„ด << : ์‹œํ”„ํŠธ์—ฐ์‚ฐ์ž๋Š” 2์˜ n์Šน์„ ํ•œ ํšจ๊ณผ๋ฅผ ์–ป์„ ์ˆ˜ ์žˆ๋‹ค.
ใ„ด >> : ๋ฐ˜์œผ๋กœ ๋‚˜๋ˆ„๋Š” ํšจ๊ณผ๋ฅผ ์ค€๋‹ค.

ํ”„๋กœ๊ทธ๋ž˜๋ฐ์—์„œ๋Š” ๊ณฑ์…ˆ ์—ฐ์‚ฐ์ž๊ฐ€ ๋น ๋ฅด๊ณ  ๋‚˜๋ˆ—์…ˆ ์—ฐ์‚ฐ์ž๋Š” ์ฒ˜๋ฆฌ์†๋„๊ฐ€ ๋А๋ฆฐํŽธ์ด๋‹ค.
ใ„ด ๋‚˜๋ˆŒ ์ผ์ด ์žˆ์„ ๊ฒฝ์šฐ *0.5f ํ•˜๋Š” ์‹์œผ๋กœ ๊ณฑํ•˜๋Š” ๊ฒƒ์ด ์ข‹๋‹ค.
ใ„ด ์‹œํ”„ํŠธ์—ฐ์‚ฐ์ž๋Š” ๊ณฑ์…ˆ์—ฐ์‚ฐ์ž๋ณด๋‹ค ๋น ๋ฅธ ํŽธ์ด๊ธฐ ๋•Œ๋ฌธ์— ๋‹จ์ˆœํ•œ 2๋ฐฐ๊ฐ€ ํ•„์š”ํ•  ๊ฒฝ์šฐ ์‚ฌ์šฉํ•˜๊ธฐ ์ข‹๋‹ค. (ํŠน๋ณ„ํžˆ ๋งŽ์ด ์“ฐ์ด์ง„ ์•Š์œผ๋‚˜ ์ด๋ ‡๊ฒŒ ์“ธ ์ˆ˜ ์žˆ๋Š” ์ •๋„๋งŒ ์•Œ์•„๋‘๋ฉด ์ข‹๋‹ค)

================

CPU ๋ฉ”๋ชจ๋ฆฌ RAM
GPU ๋ฉ”๋ชจ๋ฆฌ VRAM
ใ„ด ํ”„๋กœ๊ทธ๋žจ ์‹คํ–‰ ์‹œ ๊ฐ ๋ฉ”๋ชจ๋ฆฌ์— ํ• ๋‹นํ•˜์—ฌ ์—ฐ์‚ฐ์ž‘์—…์„ ํ•œ๋‹ค

==========

ํ•จ์ˆ˜ ๋‚ด์—์„œ ์“ฐ๋Š” ๋ณ€์ˆ˜: ์ง€์—ญ๋ณ€์ˆ˜ (์Šค์ฝ”ํ”„ ๋‚ด์—์„œ)
ใ„ด ์ง€์—ญ๋ณ€์ˆ˜๋Š” ์ดˆ๊ธฐํ™”ํ•ด์ค˜์•ผํ•จ

int x, y;
x = y = 0;

int x = 0, y = 0;

์ด๋ ‡๊ฒŒ ์ดˆ๊ธฐํ™” ํ•  ์ˆ˜๋„ ์žˆ๋‹น.

1๋กœ ์ดˆ๊ธฐํ™”ํ•˜๊ณ  ์ž๋ฃŒํ˜•์„ float์œผ๋กœ ํ•  ๊ฒฝ์šฐ 0์ด ์ถœ๋ ฅ๋˜๋Š”๋ฐ, ๋ถ€๋™์†Œ์ˆ˜์  ๊ณ„์‚ฐ๋Œ€๋กœ ๊ณ„์‚ฐํ•˜๋ฉด ์ œ๋Œ€๋กœ ์ถœ๋ ฅ๋˜์ง€ ์•Š์„ ์ˆ˜ ์žˆ์œผ๋‹ˆ
๋งž๋Š” ์ž๋ฃŒํ˜•์„ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๊ฒŒ ์ฃผ์˜๊ฐ€ ํ•„์š”ํ•˜๋‹ค.

================

[์กฐ๊ฑด๋ฌธ(Conditional)]

if๋ฌธ

if(์กฐ๊ฑด)
{
์‹คํ–‰๋ฌธ....
}
ใ„ด ์กฐ๊ฑด์ด ์ฐธ์ด๋ฉด ์‹คํ–‰ํ•˜๊ณ  ์•„๋‹ˆ๋ฉด ์•ˆํ•จ
else if(์กฐ๊ฑด)
{
}
ใ„ด if์กฐ๊ฑด์ด ์•„๋‹๋•Œ else if ์กฐ๊ฑด์ด ๋งž๋‹ค๋ฉด ์‹คํ–‰๋ฌธ ์‹คํ–‰
else
{
}
ใ„ด ์œ„์— ํ•ด๋‹นํ•˜์ง€ ์•Š๋Š” ๊ฒฝ์šฐ else ์‹คํ–‰๋ฌธ ์‹คํ–‰
ใ„ด ์ค‘๋‹จ์ ์„ ์ฐ์–ด์„œ ํ™•์ธํ•ด๋ณผ ๊ฒฝ์šฐ ๊ฐ ์กฐ๊ฑด๋งˆ๋‹ค ํ•ด๋‹นํ•˜๋Š”์ง€๋ฅผ ํ™•์ธํ•œ๋‹ค


switch๋ฌธ

switch(๋ณ€์ˆ˜)
case 1 :
break;
case 2: 
break;
default:
break;
ใ„ด ์ค‘๋‹จ์ ์„ ์ฐ์–ด์„œ ํ™•์ธํ•ด๋ณผ ๊ฒฝ์šฐ if๋ฌธ๊ณผ ๋‹ค๋ฅธ ์ ์€ ๊ฐ ์กฐ๊ฑด์„ ์ „๋ถ€ ์‚ดํŽด๋ณด์ง€์•Š๊ณ  ํ•ด๋‹นํ•˜๋Š” ์ผ€์ด์Šค๋กœ ๋ฐ”๋กœ ๋„˜์–ด๊ฐ„๋‹ค.

switch๋ฌธ์„ ์“ธ ์ˆ˜ ์žˆ๋Š” ์ƒํ™ฉ์—๋Š” switch๋ฌธ์„ ์“ฐ๋Š” ๊ฒƒ์ด ๋” ํšจ์œจ์ ์ด๋‹ค


===========

๊ฐ ์–ธ์–ด๋งˆ๋‹ค ๋ณ€์ˆ˜๋ช…์„ ์ง“๋Š” ๋„ค์ด๋ฐ๋ฐฉ๋ฒ•์ด ์ƒ์ดํ•˜๋‹ค.
ใ„ด C++์€ ํ—๊ฐ€๋ฆฌํ‘œ๊ธฐ๋ฒ•์€ ์š”์ฆ˜์—๋„ ๋งŽ์ด ์“ฐ์ด๊ธดํ•˜๋‚˜ ์ค„์ด๋Š” ์ถ”์„ธ

์†Œ๋ฌธ์ž์‹œ์ž‘, ๋‹ค์Œ ๋‹จ์–ด์— ๋Œ€๋ฌธ์ž ์“ฐ๋Š” ๊ฒƒ์€ ์นด๋ฉœ ํ‘œ๊ธฐ๋ฒ•



rand() ํ•จ์ˆ˜๋Š” ์‹œ๋“œ๊ฐ’์ด ๊ฐ™์„ ๊ฒฝ์šฐ ๋งค๋ฒˆ ๊ฐ™์€ ๊ฐ’์ด ๋‚˜์˜จ๋‹ค.
ใ„ด srand()๋Š” ์‹œ๋“œ๊ฐ’์„ ๋„ฃ์–ด์คŒ. ์‹œ๋“œ๊ฐ’์— ์‹œ๊ฐ์„ ๋„ฃ์–ด์ฃผ๋Š” ๊ฒฝ์šฐ๊ฐ€ ๋งŽ๋‹ค. ๋งค๊ฐœ๋ณ€์ˆ˜๋Š” unsigned int
ใ„ด time(0) // 0์ด nullptr์˜ ์•„์Šคํ‚ค๊ฐ’์ด๋ผ๊ณ  ํ•œ๋‹ค

๋žœ๋ค๊ฐ’์˜ ๋ฒ”์œ„๋ฅผ ์ง€์ •ํ•˜๊ณ ์‹ถ๋‹ค๋ฉด ๋‚˜๋จธ์ง€์—ฐ์‚ฐ์ž๋ฅผ ์‚ฌ์šฉํ•œ๋‹ค.
rand() % 100 ์ด๋Ÿฐ์‹์œผ๋กœ!

50~100๊นŒ์ง€ ํ•˜๋ ค๋ฉด rand() % 100 + 50

============

๋””๋ฒ„๊น… ํ•˜๋Š” ๋ฐฉ๋ฒ•
ใ„ด ํ•ด๋‹นํ•˜๋Š” ์ค„์—์„œ F9๋ˆ„๋ฅด๋ฉด ์ค‘๋‹จ์ (๋ธŒ๋ ˆ์ดํฌํฌ์ธํŠธ)๊ฐ€ ์ƒ์„ฑ๋œ๋‹ค.
ใ„ด ์ด์ƒํƒœ๋กœ ์‹คํ–‰์‹œํ‚ค๋ฉด ํ•ด๋‹น ์ค‘๋‹จ์ ์ด ์‹คํ–‰๋  ๋•Œ ๋ฉˆ์ถ”๊ณ  ๋ณด์—ฌ์คŒ

๋‹ค์Œ์ค„ ์‹คํ–‰์€ F10

๋Œ“๊ธ€