1ํ•™๋…„ (2023)/C ์–ธ์–ด

[C] Study: ๋ณ€์ˆ˜์™€ ์ž๋ฃŒํ˜• - (2) ์ž๋ฃŒํ˜•

waterproof 2023. 8. 12. 19:03

 

 

 

 


[2] ์ž๋ฃŒํ˜•

 

 ์ž๋ฃŒํ˜•(data type)์ด๋ž€ ์ž๋ฃŒ์˜ ์ข…๋ฅ˜์ด๋‹ค. ๋น„์ฃผ์–ผ ์ŠคํŠœ๋””์˜ค์—์„œ์˜ ์ž๋ฃŒํ˜•์€ ๋‹ค์Œ๊ณผ ๊ฐ™๋‹ค. ์ปดํŒŒ์ผ๋Ÿฌ๊ฐ€ ๋‹ฌ๋ผ์ง€๋ฉด ์ž๋ฃŒํ˜•์˜ ํฌ๊ธฐ๋Š” ๋ณ€๊ฒฝ๋  ์ˆ˜ ์žˆ๋‹ค.

 

์ž๋ฃŒํ˜• ์„ค๋ช… ๋ฐ”์ดํŠธ ์ˆ˜ ๋ฒ”์œ„
์ •์ˆ˜ํ˜• ๋ถ€ํ˜ธ
์žˆ์Œ
short 16๋น„ํŠธํ˜• ์ •์ˆ˜ 2 -32768 ~ 32767
int 32๋น„ํŠธํ˜• ์ •์ˆ˜ 4 -2147483648 ~ 2147483647
long 32๋น„ํŠธํ˜• ์ •์ˆ˜ 4 -2147483648 ~ 2147483647
long long 64๋น„ํŠธ ์ •์ˆ˜ 8 -9,223,372,036,854,775,808
~ 9,223,372,036,854,775,807
๋ฌธ์žํ˜• ๋ถ€ํ˜ธ
์žˆ์Œ
char ๋ฌธ์ž ๋ฐ ์ •์ˆ˜ 1 -128 ~ 127
๋ถ€๋™์†Œ์ˆ˜์ ํ˜• float ๋‹จ์ผ์ •๋ฐ€๋„
๋ถ€๋™์†Œ์ˆ˜์ 
4 1.2E-38 ~ 3.4E38
double ๋‘๋ฐฐ์ •๋ฐ€๋„
๋ถ€๋™์†Œ์ˆ˜์ 
8 2.2E-308 ~ 1.8E308
long double ๋‘๋ฐฐ์ •๋ฐ€๋„
๋ถ€๋™์†Œ์ˆ˜์ 
8 2.2E-308 ~ 1.8E308

 

 

 


์™œ ๋‹ค์–‘ํ•œ ์ž๋ฃŒํ˜•์„ ์‚ฌ์šฉํ• ๊นŒ?

 ์˜๋ฌธ์ 

   - ์ •์ˆ˜ํ˜•์œผ๋กœ ์„ ์–ธ๋œ ๋ณ€์ˆ˜๋Š” ์ •์ˆ˜๋งŒ์„ ์ €์žฅํ•  ์ˆ˜ ์žˆ๋‹ค.

   - ์ •์ˆ˜ํ˜• ๋ณ€์ˆ˜์— ์‹ค์ˆ˜๋ฅผ ์ €์žฅํ•  ์ˆ˜๋Š” ์—†๋‹ค.

   - ์™œ ๊ท€์ฐฎ๊ฒŒ ๋ณ€์ˆ˜๋ฅผ ์„ ์–ธํ•  ๋•Œ ์ž๋ฃŒํ˜•์„ ์ง€์ •ํ•˜๋Š” ๊ฒƒ์ผ๊นŒ?

   - C์–ธ์–ด์—๋Š” ์™œ ์ด๋ ‡๊ฒŒ ๋งŽ์€ ์ž๋ฃŒํ˜•์„ ์‚ฌ์šฉํ• ๊นŒ?

 

 ๋‹ต๋ณ€

   - ์‚ฌ์šฉ์ž๊ฐ€ ์ฃผ๋ฌธํ•œ ์ƒํ’ˆ์„ ์ƒ์ž์— ๋„ฃ์–ด์„œ ์ธํ„ฐ๋„ท์œผ๋กœ ํŒ๋งคํ•˜๋Š” ํšŒ์‚ฌ๋ฅผ ์ƒ๊ฐํ•ด๋ณด์ž. ์ƒํ’ˆ์˜ ํฌ๊ธฐ์— ๋”ฐ๋ผ ๋‹ค์–‘ํ•œ ํฌ๊ธฐ์˜ ์ƒ์ž๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ๊ฒƒ์ด ๋ฐ”๋žŒ์งํ•  ๊ฒƒ์ด๋‹ค. ๋งŒ์•ฝ ์ž‘์€ ์ƒํ’ˆ์„ ํฐ ์ƒ์ž์— ๋„ฃ๋Š”๋‹ค๋ฉด ๋‚ญ๋น„๊ฐ€ ๋  ๊ฒƒ์ด๊ณ  ํฐ ์ƒํ’ˆ์„ ์ž‘์€ ์ƒ์ž์— ๋„ฃ๋Š”๋‹ค๋ฉด ์ƒํ’ˆ์ด ๋“ค์–ด๊ฐ€์ง€ ์•Š์„ ๊ฒƒ์ด๋‹ค.

   - ๋ณ€์ˆ˜๋„ ์ €์žฅํ•˜๋Š” ๊ฐ’์˜ ์ข…๋ฅ˜์— ๋”ฐ๋ผ ์—ฌ๋Ÿฌ ๊ฐ€์ง€ ์œ ํ˜•์„ ์‚ฌ์šฉํ•˜๋ฉด ๋ฉ”๋ชจ๋ฆฌ๋ฅผ ์ ˆ์•ฝํ•˜๊ณ  ์†๋„๋ฅผ ๋น ๋ฅด๊ฒŒ ํ•  ์ˆ˜ ์žˆ๋‹ค.

 

์ฐธ๊ณ 

์ž๋ฃŒํ˜•์˜ ํฌ๊ธฐ๋ฅผ ์•Œ์•„๋ณด๋ ค๋ฉด sizeof ์—ฐ์‚ฐ์ž๋ฅผ ์‚ฌ์šฉํ•˜๋ฉด ๋œ๋‹ค. sizeof๋Š” ๋ณ€์ˆ˜๋‚˜ ์ž๋ฃŒํ˜•์˜ ํฌ๊ธฐ๋ฅผ ๋ฐ”์ดํŠธ ๋‹จ์œ„๋กœ ๋ฐ˜ํ™˜ํ•œ๋‹ค.
 
1
2
3
4
int x;
printf("๋ณ€์ˆ˜ x์˜ ํฌ๊ธฐ: %d\n"sizeof(x));    // ๋ณ€์ˆ˜ x์˜ ํฌ๊ธฐ; 4
printf("charํ˜•์˜ ํฌ๊ธฐ; %d\n"sizeof(char)); // charํ˜•์˜ ํฌ๊ธฐ; 1
printf("intํ˜•์˜ ํฌ๊ธฐ; %d\n"sizeof(int));   // intํ˜•์˜ ํฌ๊ธฐ; 4
cs

 

 

 


์ƒ์ˆ˜

 ์ง€๊ธˆ๊นŒ์ง€ ๋ณ€์ˆ˜์— ๋Œ€ํ•ด ์ด์•ผ๊ธฐํ–ˆ๋‹ค. ํ•˜์ง€๋งŒ ํ”„๋กœ๊ทธ๋žจ์„ ์ž‘์„ฑํ•˜๋ ค๋ฉด ๊ณ ์ •๋œ ๊ฐ’๋„ ํ•„์š”ํ•˜๋‹ค.

 

 ์˜ˆ๋ฅผ ๋“ค์–ด, ์‚ฌ์šฉ์ž๋กœ๋ถ€ํ„ฐ ๋ฐ˜์ง€๋ฆ„์„ ๋ฐ›์•„์„œ ์›์˜ ๋ฉด์ ์„ ๊ณ„์‚ฐํ•˜๊ธฐ ์œ„ํ•˜์—ฌ ๋‹ค์Œ๊ณผ ๊ฐ™์€ ๋ฌธ์žฅ์„ ์ž‘์„ฑํ•˜์˜€๋‹ค๊ณ  ํ•˜์ž.

 

1
area = 3.14 * radius * radius;
cs

 

 area, radius๋Š” ๋ณ€์ˆ˜์ด๋‹ค.

 

 3.14๋Š” ์‹คํ–‰ ์ค‘์— ์‚ฌ์šฉ์ž๊ฐ€ ์ž…๋ ฅํ•˜๋Š” ๊ฐ’์ด ์•„๋‹ˆ๋‹ค. ๋”ฐ๋ผ์„œ 3.14๋„ ๋ฉ”๋ชจ๋ฆฌ์— ์ €์žฅ๋˜์–ด ์žˆ์–ด์•ผ ํ•œ๋‹ค.

 

 3.14์™€ ๊ฐ™์ด ์‹คํ–‰ ์ค‘์— ๋ณ€๊ฒฝ๋˜์ง€ ์•Š๋Š” ๊ฐ’์„ ์ƒ์ˆ˜(constant)๋ผ๊ณ  ํ•œ๋‹ค.

 

 ํ”„๋กœ๊ทธ๋žจ์—์„œ ๊ฐ’์„ ์ €์žฅํ•˜๋Š” ๊ณต๊ฐ„์€ ๋ณ€์ˆ˜์™€ ์ƒ์ˆ˜๋กœ ๋‚˜๋ˆŒ ์ˆ˜ ์žˆ๋‹ค.

 

 ๋ณ€์ˆ˜(variable)๋Š” ํ•œ ๋ฒˆ ๊ฐ’์ด ์ €์žฅ๋˜์—ˆ์–ด๋„ ์–ธ์ œ๋“ ์ง€ ๋‹ค์‹œ ๋‹ค๋ฅธ ๊ฐ’์œผ๋กœ ๋ณ€๊ฒฝ์ด ๊ฐ€๋Šฅํ•˜๋‹ค. 

 

 ์ƒ์ˆ˜(constant)๋Š” ํ•œ ๋ฒˆ ์ •ํ•ด์ง€๋ฉด ๋ณ€๊ฒฝํ•  ํ•„์š”๊ฐ€ ์—†๋‹ค.

 

 ์ƒ์ˆ˜๋„ ์ž๋ฃŒํ˜•์„ ๊ฐ€์ง€๊ณ  ์žˆ๋‹ค. ๋ณ€์ˆ˜์™€ ์•„์ฃผ ํก์ˆ˜ํ•˜๋ฉฐ, ๋‹ค๋ฅธ ์ ์€ ์‹คํ–‰ ๋„์ค‘์— ๊ฐ’์ด ๋ณ€๊ฒฝ๋˜์ง€ ์•Š๋Š”๋‹ค๋Š” ์ ๋ฟ์ด๋‹ค.