´Ù¸¥ ¿¬»êÀÚµéÀº ¸ðµÎ +, -, && °°Àº ±âÈ£·Î Ç¥ÇöÇϴµ¥ sizeof ¿¬»êÀÚ´Â ´Ü¾î·Î µÇ¾î ÀÖ¾î Á¶±Ý ƯÀÌÇØ º¸ÀδÙ. ÀÌ ¿¬»êÀÚ´Â ÇÇ¿¬»êÀÚ·Î ÁÖ¾îÁø ŸÀÔ ¶Ç´Â º¯¼öÀÇ Å©±â¸¦ °è»êÇÑ´Ù. ±âº» Çü½ÄÀº ´ÙÀ½°ú °°´Ù.
sizeof(ŸÀÔ ¶Ç´Â º¯¼ö)
ÇÇ¿¬»êÀÚ·Î int, double°°Àº ŸÀÔÀ» ¾µ ¼öµµ ÀÖ°í º¯¼ö¸¦ ¾µ ¼öµµ ÀÖÀ¸¸ç »ó¼ö¸¦ »ç¿ëÇÒ ¼öµµ ÀÖ´Ù. ¾Æ¹¸µç °ýÈ£¾È¿¡ ÀÖ´Â ´ë»óÀÌ ¸Þ¸ð¸®¸¦ ¾ó¸¶³ª Â÷ÁöÇϰí ÀÖ´ÂÁö °è»êÇÑ´Ù. ´ÙÀ½ ¿¹Á¦¸¦ ½ÇÇàÇØ º¸¸é ÀÌ ¿¬»êÀÚ°¡ ¾î¶»°Ô µ¿ÀÛÇÏ´ÂÁö ±Ý¹æ ¾Ë ¼ö ÀÖÀ» °ÍÀÌ´Ù.
|
¿¹ Á¦ : sizeof |
#include <Turboc.h>
void main()
{
int i;
printf("int=%d\n",sizeof(int));
printf("double=%d\n",sizeof(double));
printf("i=%d\n",sizeof(i));
printf("string=%d\n",sizeof("string"));
}
Á¤¼ö, ½Ç¼ö ŸÀÔ°ú Á¤¼öÇü º¯¼ö, ¹®ÀÚ¿ »ó¼ö¿¡ ´ëÇØ Å©±â¸¦ °è»êÇØ º¸¾Ò´Ù. ½ÇÇà °á°ú´Â ´ÙÀ½°ú °°´Ù.
int=4
double=8
i=4
string=7
Á¤¼öÇüÀº 4¹ÙÀÌÆ®¸¦ Â÷ÁöÇÏ°í ½Ç¼öÇüÀº 8¹ÙÀÌÆ®¸¦ Â÷ÁöÇÑ´Ù. "string"À̶ó´Â ¹®ÀÚ¿Àº 6ÀÚÀÌÁö¸¸ Á¦ÀÏ µÚÀÇ ³Î Á¾·á ¹®ÀÚµµ ¸Þ¸ð¸®¸¦ Â÷ÁöÇϹǷΠũ±â´Â 7¹ÙÀÌÆ®ÀÌ´Ù.
sizeof ¿¬»êÀÚ´Â »ç¿ëÀÚ°¡ Á÷Á¢ °è»êÇØ¾ß ÇÒ º¯¼öÀÇ Å©±â¸¦ ÄÄÆÄÀÏ·¯°¡ ´ë½Å °è»êÇØ ÁÖ´Â ¿¬»êÀÚÀÌ´Ù. sizeof(int)ÀÇ °á°ú°¡ 4¶ó´Â °ÍÀº ´©±¸³ª ¾Ë°í ÀÖ´Â »ç½ÇÀÌ´Ù. ±×·¯³ª ¸¸¾à ÀÌ ¼Ò½º°¡ 16ºñÆ®¿Í 32ºñÆ®¸¦ µ¿½Ã¿¡ Áö¿øÇØ¾ß ÇÑ´Ù¸é sizeof(int)´Â »óȲ¿¡ µû¶ó 2°¡ µÉ ¼öµµ ÀÖ°í 4°¡ µÉ ¼öµµ ÀÖ´Ù. ±×¶§¸¶´Ù ¼Ò½º¸¦ Á÷Á¢ °íÄ¡´Â °Íº¸´Ù´Â sizeof(int)¶ó°í ½á ³õ°í ÄÄÆÄÀÏ·¯°¡ ¾Ë¾Æ¼ °è»êÇϵµ·Ï ÇÏ´Â ÆíÀÌ ´õ ¾ÈÀüÇÏ´Ù. sizeof ¿¬»êÀÚÀÇ ½Ç¿ëÀûÀÎ »ç¿ë¿¹´Â ¹è¿ÀÇ Å©±â¸¦ °è»êÇÒ ¶§ÀÌ´Ù. ´ÙÀ½°ú °°Àº ¹è¿À» »ç¿ëÇϰí ÀÖ´Ù°í ÇÏÀÚ.
int price[100][3];
ÀÌ ¹è¿Àº 100°¡Áö »óǰÀÇ ¼¼°¡Áö Á¾·ù(´ë, Áß, ¼Ò µî)¿¡ ´ëÇÑ °¡°Ý Á¤º¸¸¦ °¡Áö´Âµ¥ ¹è¿ÀÇ Å©±â´Â 100*3À̰í Á¤¼öÇü ¹è¿À̹ǷΠÃÑ 1200¹ÙÀÌÆ®°¡ µÉ °ÍÀÌ´Ù. ¸¸¾à ÀÌ Á¤º¸¸¦ ÆÄÀÏ·Î ÀúÀåÇϰųª ¹è¿ Å©±â¸¸Å ¸Þ¸ð¸®¸¦ »õ·Î ÇÒ´çÇÏ·Á¸é 1200À̶ó´Â Å©±â°ªÀ» ÁöÁ¤ÇØ¾ß ÇÒ °ÍÀÌ´Ù.
ÆÄÀϾ²±â(1200¹ÙÀÌÆ®);
¸Þ¸ð¸® ÇÒ´ç(1200¹ÙÀÌÆ®);
ÀÌ·± ½ÄÀ¸·Î ¼Ò½º¿¡ Á÷Á¢ ÇÊ¿äÇÑ Å©±â¸¦ ÀûÀ¸¸é ÀÏ´ÜÀº Á¦´ë·Î µ¿ÀÛÇÑ´Ù. ±×·±µ¥ °³¹ßÁß¿¡ »óǰÀÇ °³¼ö°¡ 100°¡Áö¿¡¼ 120°¡Áö·Î ´Ã¾î³ª°í °¢ »óǰÀÌ 4°¡Áö Á¾·ù·Î ¼¼ºÐµÇµµ·Ï ¹Ù²î¾ú´Ù°í ÇÏÀÚ. ±×·¯¸é ÇÊ¿äÇÑ price ¹è¿Àº int price[120][4]°¡ µÉ °ÍÀ̸ç ÀÌ ¹è¿ÀÇ Å©±â´Â ´õ ÀÌ»ó 1200¹ÙÀÌÆ®°¡ ¾Æ´Ï´Ù. ¹è¿Ã³·³ °³¹ßÁß¿¡¶óµµ Å©±â°¡ Á¾Á¾ ¹Ù²î´Â °ªÀº ±× Å©±â¸¦ Á÷Á¢ °è»êÇÏÁö ¸»°í sizeof ¿¬»êÀÚ¸¦ »ç¿ëÇØ¾ß ÇÑ´Ù.
ÆÄÀϾ²±â(sizeof(price));
¸Þ¸ð¸® ÇÒ´ç(sizeof(price));
ÀÌ·¸°Ô¸¸ ½á ³õÀ¸¸é ÄÄÆÄÀÏ·¯°¡ ÄÄÆÄÀÏÇÒ ¶§¸¶´Ù ¾Ë¾Æ¼ °è»êÇϹǷΠ¹è¿ÀÇ Å©±â¸¦ ¹Ù²Ù¾îµµ ´Ù¸¥ ºÎºÐÀº ¼Õ ´î Çʿ䰡 ¾ø¾îÁø´Ù. sizeof¿¬»êÀÚ´Â ´Ü¼øÇÑ Æí¸®¿Ü¿¡µµ ºÒÀÏÄ¡ÀÇ À§ÇèÀ» Á¦°ÅÇÏ´Â ¿ªÇÒµµ ÇÑ´Ù. À§ ¿¹¿¡¼ 1200À̶ó´Â ¼ö¸¦ Á÷Á¢ ¾´ °÷ÀÌ 8±ºµ¥¶ó°í ÇÒ ¶§ ¼öÀÛ¾÷À¸·Î °íÄ¥ °æ¿ì ÇÑ °÷À» ºü¶ß¸± À§ÇèÀÌ ÀÖÁö¸¸ sizeof¿¬»êÀÚ¸¦ ¾²¸é ´õ ÀÌ»ó ÀÌ·± °ÆÁ¤À» ÇÏÁö ¾Ê¾Æµµ µÈ´Ù.
sizeof ¿¬»êÀÚ´Â ÇÇ¿¬»êÀÚÀÇ ÃÑ Å©±â¸¦ ¹ÙÀÌÆ® ´ÜÀ§·Î °è»êÇÑ´Ù. int array[34]¶ó´Â ¹è¿ÀÌ ÀÖÀ» ¶§ sizeof(array)´Â 34*4=136ÀÌ´Ù. ¸¸¾à ¹è¿ÀÇ ÃÑ ¹ÙÀÌÆ®¼ö°¡ ¾Æ´Ñ ¹è¿ÀÇ ¿ä¼Ò °³¼ö, ±×·¯´Ï±î ÀÌ °æ¿ì¿¡ 34¶ó´Â °ªÀ» ¾Ë°í ½ÍÀ¸¸é ´ÙÀ½°ú °°ÀÌ ÇÑ´Ù.
sizeof(array) / sizeof(array[0])
¹è¿ Àüü Å©±â¸¦ ¹è¿ ¿ä¼ÒÀÇ Å©±â·Î ³ª´©¸é ¹è¿ ¿ä¼ÒÀÇ °³¼ö°¡ µÈ´Ù. ÀÚÁÖ »ç¿ëµÇ´Â ½ÄÀ̹ǷΠ¿Ü¿ö µÎµµ·Ï ÇÏÀÚ.
¹è¿Àº ±×·¡µµ ¾Ï»êÀ¸·Î ±× Å©±â¸¦ ±¸ÇϱⰡ ½±Áö¸¸ ±¸Á¶Ã¼´Â °¢ ¸â¹ö Å©±âÀÇ ÃÑÇÕÀ» ±¸ÇØ¾ß Çϱ⠶§¹®¿¡ »ç¶÷ÀÌ Á÷Á¢ ±× Å©±â¸¦ °è»êÇÏ´Â °ÍÀº ¹«Ã´ ±ÍÂú°í ºñ»ý»óÀûÀÎ ÀÏÀÌ´Ù. »Ó¸¸ ¾Æ´Ï¶ó ±¸Á¶Ã¼´Â Á¤·Ä¹æ½ÄÀ̶ó´Â ÄÄÆÄÀÏ·¯ ¿É¼Ç¿¡ µû¶ó Å©±â°¡ ¾à°£¾¿ ´Þ¶óÁú ¼öµµ Àֱ⠶§¹®¿¡ Á÷Á¢ °è»êÇÏ¸é Æ²¸± À§Çèµµ ÀÖ´Ù. ÀÌ·² ¶§´Â Å©±â¸¦ Á÷Á¢ °è»êÇÏÁö ¸»°í ¹Ýµå½Ã sizeof ¿¬»êÀÚ¸¦ »ç¿ëÇØ¾ß ÇÑ´Ù.
sizeof ¿¬»êÀÚ´Â ÄÄÆÄÀϽÿ¡ ÄÄÆÄÀÏ·¯¿¡ ÀÇÇØ °è»êµÇ¸ç ±× °á°ú´Â Á¤¼ö »ó¼öÀÌ´Ù. ŸÀÔÀ̳ª º¯¼öÀÇ Å©±â´Â ÄÄÆÄÀÏÇÒ ¶§ ¹Ì¸® ¾Ë ¼ö Àֱ⠶§¹®¿¡ ÄÄÆÄÀÏ·¯°¡ ÄÄÆÄÀÏÇÒ ¶§ °è»êÇØ¼ °á°ú »ó¼ö¸¦ ´ë½Å Áý¾î ³Ö´Â´Ù. ½ÇÇà ½Ã°£¿¡ °è»êµÇ´Â °ÍÀÌ ¾Æ´Ï´Ù.
arsize = sizeof(array) / sizeof(array[0]);
ÀÌ ¹®Àå¿¡¼ »ç¿ëµÈ µÎ °³ÀÇ sizeof´Â µÑ ´Ù »ó¼öÀÌ´Ù. ±×·¡¼ arsize = 136 / 4;°¡ µÇ¸ç »ó¼ö³¢¸®ÀÇ ¿¬»êµµ »ó¼öÀ̹ǷΠarsize=34;°¡ µÈ´Ù. °á±¹ ½ÇÇà ÆÄÀÏ¿¡´Â arsize=34¶ó´Â ´ëÀÔ¹®ÀÌ ´ë½Å µé¾î°¡°Ô µÈ´Ù. sizeof ¿¬»êÀÚ¸¦ ¾Æ¹«¸® °úµµÇÏ°Ô ¾²´õ¶óµµ ½ÇÇà ½Ã°£ÀÌ ´À·ÁÁö°Å³ª ÇÁ·Î±×·¥ÀÌ Ä¿Áö´Â ºÒÀÌÀÍÀº ¾ø´Ù. ÇÁ·Î±×·¡¸Ó°¡ ÇØ¾ß ÇÒ À⽺·¯¿î °è»êÀ» ÄÄÆÄÀÏ·¯°¡ ´ë½ÅÇÏ´Â °ÍÀ̹ǷΠÀû±ØÀûÀ¸·Î Ȱ¿ëÇϵµ·Ï ÇÏÀÚ. ºÎ·Á ¸ÔÀÚ´Â ¾ê±â´Ù.