` ¥¶. Æ÷ÀÎÅÍ < Æ÷ÀÎÅÍ º¯¼öÀÇ Á¤ÀÇ > Æ÷ÀÎÅÍ´Â ÁÖ¼Ò¸¦ ³ªÅ¸³»´Â µ¥ÀÌÅÍ À¯ÇüÀÌ´Ù. ´Ù½Ã ¸»Çؼ­ Æ÷ÀÎÅÍ µ¥ÀÌÅÍ À¯ÇüÀÇ °ªÀº ÁÖ¼Ò¶ó´Â ¾ê±â°¡ µÇ¸ç, ÀÌ ÁÖ¼Ò·Î ¿ª½Ã ¼ýÀÚ¸¦ »ç¿ëÇÏ°í ÀÖ´Ù. ´ÜÁö ÁÖ¼Ò¿¡´Â À½¼ö°¡ ÀÖÀ» ¼ö ¾ø±â ¶§¹®¿¡ Æ÷ÀÎÅÍ µ¥ÀÌÅÍ À¯ÇüÀÇ ÁÖ¼Ò´Â ¾çÀÇ Á¤¼ö°¡ µÇ¸ç ¿Ü°ü»óÀ¸·Î unsigned µ¥ÀÌÅÍ À¯Çü°ú °°°Ô µÈ´Ù. ´ÙÀ½Àº Æ÷ÀÎÅÍ º¯¼ö¸¦ Á¤ÀÇÇÑ ¸î °¡Áö ¿¹ÀÌ´Ù. ¦£¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¤ ¦¢ ©ç int *ip; ¦¢ ¦¢ ©è char *cp; ¦¢ ¦¢ ©é int *ip, *jp; ¦¢ ¦¢ ©ê int *ip, jp; ¦¢ ¦¢ ¦¢ ¦¦¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¥ Áö±Ý±îÁöÀÇ º¯¼ö Á¤ÀÇ¿Í ´Ù¸¥°ÍÀº º¯¼ö ¾Õ¿¡ '*'°¡ ÀÖ´Â °ÍÀε¥, '*'´Â µÚÀÇ º¯¼ö°¡ Æ÷ÀÎÅÍ À¯Çü ÀÇ º¯¼öÀÓÀ» ³ªÅ¸³»´Â ¿ªÇÒÀ» ÇÑ´Ù. À§¿¡¼­ ©çÀº int À¯ÇüÀÇ µ¥ÀÌÅÍ°¡ ±â¾ïµÇ¾î ÀÖ´Â ÁÖ±â¾ï ÀåÄ¡ ÀÇ ÁÖ¼Ò¸¦ °ªÀ¸·Î °®´Â Æ÷ÀÎÅÍ º¯¼ö ip¸¦ Á¤ÀÇÇÑ °ÍÀÌ°í, ©è´Â Æ÷ÀÎÅÍ º¯¼ö cp¸¦ Á¤ÀÇÇÑ °ÍÀ¸·Î ÀÌ ÁÖ¼Ò¿¡´Â char À¯ÇüÀÇ µ¥ÀÌÅÍ°¡ ÀÖÀ½À» ÀǹÌÇÑ´Ù. ©éÀº °°Àº µ¥ÀÌÅÍ À¯ÇüÀÇ Æ÷ÀÎÅÍ º¯¼öµéÀ» Çѹø¿¡ °°ÀÌ Á¤ÀÇÇÑ °ÍÀ¸·Î, À̶§ °¢ Æ÷ÀÎÅÍ º¯¼ö ¾Õ¿¡ '*'¸¦ ºÙ¿©¾ß ÇÑ´Ù. ±×·¯³ª ©ê¿Í °°ÀÌ Á¤ ÀÇÇÒ °æ¿ì ip´Â Æ÷ÀÎÅÍ º¯¼öÀÌÁö¸¸ jp´Â ±×³É int À¯ÇüÀÇ º¯¼ö°¡ µÇ¹Ç·Î ÁÖÀÇÇØ¾ß ÇÑ´Ù. ½ÇÁ¦·Î À§ÀÇ º¯¼öµéÀº ÁÖ¼Ò¸¦ °ªÀ¸·Î °®´Â´Ù´Â Á¡¿¡¼­´Â °°´Ù. ±×·¯³ª ±× ÁÖ¼Ò¿¡ ¾î¶² µ¥ÀÌÅÍ°¡ ÀÖ´À³Ä°¡ ´Ù¸£±â ¶§¹®¿¡ ipÀÇ °ªÀ» cp¿¡ ÇÒ´çÇÒ ¼ö ¾øÀ¸¸ç, ¸¶Âù°¡Áö·Î cpÀÇ °ªÀ» ip¿¡ ÇÒ´çÇÒ ¼ö ¾ø´Ù. ¡Ø far Æ÷ÀÎÅÍ º¯¼ö¿Í near Æ÷ÀÎÅÍ º¯¼ö, ±×¸®°í huge Æ÷ÀÎÅÍ º¯¼ö IBM-PCÀÇ ÁÖ¼Ò´Â 2°¡Áö°¡ Á¸ÀçÇϴµ¥, ¿ì¼± °¡Àå ¸¹ÀÌ »ç¿ëµÇ´Â near Æ÷ÀÎÅÍÀÇ °æ¿ì¿¡´Â ¿ÀÇÁ¼Â °ª¸¸ ÁÖ¼Ò·Î °®°Ô µÈ´Ù. ÀÌ °æ¿ì ¼¼±×¸ÕÆ® ÁÖ¼Ò´Â °íÁ¤µÇ¾î ÀÖÀ½À» ÀǹÌÇÑ´Ù. µû¶ó¼­ near Æ÷ÀÎ ÅÍ º¯¼öÀÇ Å©±â´Â 16ºñÆ®°¡ µÇ¸ç ÇöÀç °íÁ¤µÈ ¼¼±×¸ÕÆ® ÁּҷκÎÅÍ 64K ¹ÙÀÌÆ® À̳»ÀÇ °ª¸¸ ÁÖ¼Ò ·Î °®°Ô µÈ´Ù. ¹Ý¸é¿¡ far Æ÷ÀÎÅÍ º¯¼ö´Â ¼¼±×¸ÕÆ® ÁÖ¼Ò¿Í ¿ÀÇÁ¼ÂÀ» °¢°¢ 16ºñÆ®¾¿ °ªÀ¸·Î °®´Â ´Ù. µû¶ó¼­ far Æ÷ÀÎÅÍ º¯¼ö´Â 32ºñÆ®ÀÇ Å©±â¸¦ °®°Ô µÇ¸ç ÁÖ±â¾ï ÀåÄ¡ÀÇ ¾î´À °÷À̳ª ÁÖ¼Ò¸¦ °ª À¸·Î °¡Áú ¼ö ÀÖ´Ù. huge Æ÷ÀÎÅÍ´Â far Æ÷ÀÎÅÍ¿Í À¯»çÇϳª ¿ÀÇÁ¼ÂÀÇ °ªÀÌ Ç×»ó 0¿¡¼­ 15»çÀÌÀÇ °ªÀ» °®µµ·Ï ¸¸µç °ÍÀÌ ´Ù¸£´Ù. ÀÌ ÁÖ¼Ò¸¦ »ç¿ëÇϸé ÁÖ±â¾ï ÀåÄ¡ÀÇ ÇÑ Àå¼Ò Áß¿¡¼­ ÁÖ¼Ò°¡ µü ÇÏ ³ª·Î °áÁ¤µÇ´Â ÀåÁ¡ÀÌ ÀÖ´Ù. Æ÷ÀÎÅ͸¦ far ¶Ç´Â near, huge·Î ¼±¾ðÇÏ°íÀÚ ÇÒ ¶§¿¡´Â ´ÙÀ½°ú °°ÀÌ º¯¼ö À̸§°ú µ¥ÀÌÅÍ À¯Çü »çÀÌ¿¡ Å°¿öµå¸¦ Áý¾î ³ÖÀ¸¸é µÈ´Ù. ¦£¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¤ ¦¢ int near *ip; /* Æ÷ÀÎÅÍ ¾Õ¿¡ ¾Æ¹«°Íµµ ¾øÀ» °æ¿ì¿¡´Â »ç¿ëÇÏ´Â */ ¦¢ ¦¢ char far *cp; /* ¸Þ¸ð¸® ¸ðµ¨¿¡ ÀÇÇØ near, far, huge µîÀÌ °áÁ¤µÈ´Ù */ ¦¢ ¦¢ float huge *fp; ¦¢ ¦¢ ¦¢ ¦¦¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¥ ¸¹ÀÌ »ç¿ëÇÏ´Â small ¸Þ¸ð¸® ¸ðµ¨ÀÇ °æ¿ì¿¡´Â ¸ðµÎ near Æ÷ÀÎÅÍ°¡ µÇ¸ç large ¸Þ¸ð¸® ¸ðµ¨ÀÇ °æ ¿ì¿¡´Â ¸ðµÎ far Æ÷ÀÎÅÍ°¡ µÈ´Ù. ¡Ø IBM-PC¿¡¼­ÀÇ ÁÖ¼Ò ¼¼±×¸ÕÆ® ÁÖ¼Ò : ÁÖ±â¾ï ÀåÄ¡¸¦ 16°³ÀÇ ¹ÙÀÌÆ®·Î ³ª´« °ÍÀ¸·Î, ÀÌ ³ª´« °Í¿¡ ÁÖ¼Ò¸¦ ºÙÀÎ °ÍÀÌ ¼¼±×¸ÕÆ® ÁÖ¼ÒÀÌ´Ù. IBM-PCÀÇ ÁÖ¼ÒÀÇ Å©±â°¡ 20ºñÆ®À̱⠶§¹®¿¡, ÀÌ´Â 1M ¹ÙÀÌÆ®°¡ µÇ¸ç À̸¦ 16 ¹ÙÀÌÆ®·Î ³ª´©°Ô µÇ¸é 65536 = 216°³ÀÇ ¼¼±×¸ÕÆ®°¡ Á¸ÀçÇÏ°Ô µÈ´Ù. µû¶ó¼­ ¼¼±×¸ÕÆ® ÁÖ¼ÒÀÇ Å©±â ´Â 16ºñÆ®°¡ µÈ´Ù. ¿ÀÇÁ¼Â : ÇÑ ¼¼±×¸ÕÆ® ³»ÀÇ ¹ÙÀÌÆ®ÀÇ À§Ä¡¸¦ ³ªÅ¸³½´Ù. ÇÑ ¼¼±×¸ÕÆ®ÀÇ Å©±â°¡ 16¹ÙÀÌÆ®À̹ǷΠÀÌÀÇ À§Ä¡´Â 0¿¡¼­ 15±îÁöÀÇ ¼ö·Î, Áï 4ºñÆ® Å©±âÀÇ ÁÖ¼Ò·Î ³ªÅ¸³¾ ¼ö ÀÖ´Ù. µû¶ó¼­ ¼¼±×¸ÕÆ® ÁÖ ¼Ò¿Í ¿ÀÇÁ¼ÂÀ» ÇÕÇÏ¸é ¹Ù·Î ÇÑ ¹ÙÀÌÆ®¸¦ ³ªÅ¸³»´Â ÁÖ¼Ò°¡ µÈ´Ù. ±×·±µ¥ IBM-PC¿¡¼­´Â ƯÀÌÇÏ°Ôµµ ¿ÀÇÁ¼ÂÀ» 16ºñÆ®·Î Ç¥ÇöÇÏ°í ÀÖ´Ù. µû¶ó¼­ ¼¼±×¸ÕÆ®ÀÇ ÁÖ¼Ò°¡ 1000(16)ÀÌ°í ¿ÀÇÁ¼ÂÀÌ 2343(16)ÀÎ °æ ¿ì ÀÌ°ÍÀÌ ³ªÅ¸³»´Â ¹ÙÀÌÆ®ÀÇ ÁÖ¼Ò´Â ´ÙÀ½°ú °°´Ù. ¦£¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¤ ¦¢ 10000(16) + 2343(16) = 12343(16) ¦¢ ¦¦¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¥ À§¿Í °°ÀÌ ¹ÙÀÌÆ®¸¦ ¼­·Î ´Ù¸¥ ¿©·¯ °³ÀÇ ¼¼±×¸ÕÆ® ÁÖ¼Ò¿Í ¿ÀÇÁ¼ÂÀÇ Á¶ÇÕÀ¸·Î ³ªÅ¸³¾ ¼ö ÀÖÀ½À» ¾Ë ¼ö ÀÖ´Ù. ÀϹÝÀûÀ¸·Î ¼¼±×¸ÕÆ® ÁÖ¼Ò´Â °íÁ¤½ÃÄÑ ³õ°í ¿ÀÇÁ¼Â¸¸ ÁÖ¼Ò·Î »ç¿ëÇϴµ¥, ÀÌ °æ¿ì ¿ÀÇÁ¼ÂÀÇ ÁÖ¼Ò°¡ 16ºñÆ®À̹ǷΠÃÖ°í 64K ¹ÙÀÌÆ®ÀÇ ÁÖ±â¾ï ÀåÄ¡±îÁö¸¸ »ç¿ëÇÒ ¼ö ÀÖ´Ù. < '&' ¿¬»êÀÚ > Æ÷ÀÎÅÍ À¯ÇüÀÇ º¯¼ö´Â ÁÖ¼Ò¸¦ °ªÀ¸·Î °¡Áö±â ¶§¹®¿¡ À̸¦ »ç¿ëÇÏ·Á¸é ÁÖ¼Ò¸¦ ÇÒ´çÇÏ¿©¾ß Çϴµ¥ C¿¡¼­´Â À̸¦ À§ÇØ '&' ¿¬»êÀÚ¸¦ Á¦°øÇÏ°í ÀÖ´Ù. ÀÌ´Â ´ÙÀ½°ú °°Àº ÇüÅ·Π»ç¿ëÇÑ´Ù. ¦£¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¤ ¦¢ &º¯¼öÀ̸§ ¦¢ ¦¦¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¥ °è»ê °á°ú´Â ¹Ù·Î µÚÀÇ º¯¼öÀÇ ÇöÀç ÁÖ¼Ò°¡ µÈ´Ù(ÀÌ ÁÖ¼Òµµ ¿ª½Ã ¸Þ¸ð¸® ¸ðµ¨¿¡ µû¶ó near ÁÖ¼Ò °¡ µÇ°Å³ª far, huge ÁÖ¼Ò°¡ µÇ¸ç, ƯÁ¤ ÁÖ¼Ò·Î º¯°æÇÏ·Á¸é (int far *)¿Í °°ÀÌ Çü º¯È¯ ¿¬»êÀÚ¸¦ »ç¿ëÇÏ¸é µÈ´Ù). ÁÖ¼Ò´Â ¾çÀÇ Á¤¼öÀ̱⠶§¹®¿¡ & ¿¬»êÀÚÀÇ °è»ê °á°ú´Â ¾çÀÇ Á¤¼ö°ªÀÌ µÈ´Ù. µû ¶ó¼­ ÀÌ °ªÀ» %u³ª %lu¸¦ »ç¿ëÇÏ¿© Ãâ·Â½ÃÅ°¸é º¯¼öÀÇ ÁÖ¼Ò¸¦ Ãâ·ÂÇÒ ¼ö ÀÖ´Ù. int i; char c; float f; double d; static int si; static char sc; static float sf; static double sd; main() { int mi; char mc; float mf; double md; printf("Address of i = %u\n",&i); printf("Address of c = %u\n",&c); printf("Address of f = %u\n",&f); printf("Address of d = %u\n",&d); printf("Address of si = %u\n",&si); printf("Address of sc = %u\n",&sc); printf("Address of sf = %u\n",&sf); printf("Address of sd = %u\n",&sd); printf("Address of mi = %u\n",&mi); printf("Address of mc = %u\n",&mc); printf("Address of mf = %u\n",&mf); printf("Address of md = %u\n",&md); } ¦£¦¡¦¡¦¡¦¤ ¦¢ °á°ú ¦¢ ¦¦¦¡¦¡¦¡¦¥ --------------------------------------------------------------------------------- Address of i = 2017 Address of c = 2004 Address of f = 2013 Address of d = 2005 Address of si = 2032 Address of sc = 2019 Address of sf = 2028 Address of sd = 2020 Address of mi = 65476 Address of mc = 65479 Address of mf = 65480 Address of md = 65484 auto ¸Þ¸ð¸® À¯ÇüÀÇ º¯¼öµé°ú extern, static ¸Þ¸ð¸® À¯ÇüÀÇ º¯¼öµéÀÇ ÁÖ¼Ò°¡ Å©°Ô Â÷ÀÌ°¡ ³²À» º¼ ¼ö Àִµ¥, auto À¯ÇüÀÇ º¯¼öµéÀº ½ºÅÃ(stack)À̶ó°í ºÒ¸®´Â ¸Þ¸ð¸® ¿µ¿ª¿¡ ÇÒ´çµÈ´Ù. ½ºÅÃÀº ÇÁ·Î±×·¥ÀÌ ¼öÇàµÊ¿¡ µû¶ó ±× Å©±â°¡ °¡º¯ÀûÀ¸·Î º¯Çϴµ¥, auto À¯ÇüÀÇ º¯¼öµéµµ ÀÌ¿¡ ¸ÂÃß¾î ÀÚ½ÅÀÌ ¼±¾ðµÈ ÇÔ¼ö³ª ºí·°¿¡ ÀÖÀ» ¶§¿¡´Â ½ºÅÿ¡ Á¸ÀçÇÏ°í ±× ¿ÜÀÇ °æ¿ì¿¡´Â ¾ø¾îÁö°Ô µÈ´Ù. ¹Ý ¸é¿¡ extern°ú static À¯ÇüÀÇ º¯¼öµéÀº Èü(heap)À̶ó°í ºÒ¸®´Â ¿µ¿ª¿¡ ÇÒ´çµÈ´Ù. ÀÌ´Â º°µµ·Î Á¸Àç Çϱ⠶§¹®¿¡ Á¸¼Ó ±â°£ÀÌ Àüü ÇÁ·Î±×·¥ÀÇ ¼öÇà ½Ã°£°ú °°´Ù. '&' ¿¬»êÀÚ´Â À§¿Í °°ÀÌ º¯¼öÀÇ ÁÖ¼Ò¸¦ °è»êÇϱâ À§Çؼ­ ÀÖ´Â °ÍÀº ¾Æ´Ï´Ù. ¹Ù·Î Æ÷ÀÎÅÍ º¯¼ö¿¡ ÁÖ¼Ò¸¦ ÇÒ´çÇÒ ¶§ ÀÌ '&' ¿¬»êÀÚ¸¦ »ç¿ëÇÑ´Ù. ¦£¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¤ ¦¢ int i = 10; ¦¢ ¦¢ int *ip; ¦¢ ¦¢ ip = &i; ¦¢ ¦¢ ¦¢ ¦¦¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¥ Æ÷ÀÎÅÍ º¯¼ö ip°¡ int À¯ÇüÀÇ ÁÖ¼Ò¸¦ °ªÀ¸·Î °®´Â º¯¼öÀ̱⠶§¹®¿¡ °°Àº int À¯ÇüÀÇ º¯¼öÀÎ iÀÇ ÁÖ¼Ò¸¦ ÇÒ´ç ¹Þ°í ÀÖ´Ù. ±×·¯³ª ´ÙÀ½°ú °°ÀÌ ÇÒ´çÇÒ ¼ö´Â ¾ø´Ù. ¦£¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¤ ¦¢ char c; ¦¢ ¦¢ int *ip; ¦¢ ¦¢ ip = &c; ¦¢ ¦¢ ¦¢ ¦¦¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¥ c°¡ int À¯ÇüÀÌ ¾Æ´Ñ char À¯ÇüÀÇ º¯¼öÀ̱⠶§¹®ÀÌ´Ù. Æ÷ÀÎÅÍÀÇ °æ¿ì¿¡ °°Àº À¯ÇüÀÇ Æ÷ÀÎÅÍ °ªÀÌ ¾Æ´Ï¸é ÄÄÆÄÀϽÿ¡ ¹Ù·Î ¿¡·¯°¡ ³ª°Ô µÈ´Ù. ±×·¯³ª ´ÙÀ½°ú °°ÀÌ Çü º¯È¯À» »ç¿ëÇÏ¸é ´Ù¸¥ µ¥ÀÌÅÍ À¯ÇüÀÇ ÁÖ¼Ò¸¦ Æ÷ÀÎÅÍ º¯¼ö¿¡ ÇÒ´çÇÒ ¼ö ÀÖ´Ù. ¦£¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¤ ¦¢ char c; ¦¢ ¦¢ int *ip; ¦¢ ¦¢ ip = (int *)&c; ¦¢ ¦¢ ¦¢ ¦¦¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¥ ¶Ç '&' ¿¬»êÀÚ¸¦ »ç¿ëÇϸé Æ÷ÀÎÅÍ À¯ÇüÀÇ º¯¼öµé¿¡°Ô ´ÙÀ½°ú °°ÀÌ ÃʱⰪÀ» ÁÙ ¼ö ÀÖ´Ù. ¦£¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¤ ¦¢ int i = 10; ¦¢ ¦¢ int *ip = &i; ¦¢ ¦¢ char c = 'A'; ¦¢ ¦¢ char *cp = &c; ¦¢ ¦¢ ¦¢ ¦¦¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¥ '&' ¿¬»êÀÚ´Â º¯¼ö ÀÌ¿ÜÀÇ °Í¿¡´Â »ç¿ëÇÒ ¼ö ¾øÀ¸¸ç, µû¶ó¼­ ´ÙÀ½°ú °°ÀÌ »ç¿ëÇÒ ¼ö ¾ø´Ù. ¦£¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¤ ¦¢ ©ç &3 /* 3Àº º¯¼ö°¡ ¾Æ´Ï¶ó »ó¼öÀÌ´Ù */ ¦¢ ¦¢ ©è &(x+y) /* x+y´Â º¯¼ö°¡ ¾Æ´Ï¶ó ¼ö½ÄÀÌ´Ù */ ¦¢ ¦¢ ©é &&x /* &(&x)°¡ µÇ¾î &(ÁÖ¼Ò)°¡ µÇ´Âµ¥, ÁÖ¼Ò´Â º¯¼ö°¡ ¾Æ´Ï´Ù */ ¦¢ ¦¢ ©ê register int x; /* register À¯ÇüÀÇ º¯¼ö´Â ÁÖ±â¾ï ÀåÄ¡°¡ ¾Æ´Ñ ·¹Áö½ºÅÍ¿¡ */ ¦¢ ¦¢ &x; /* ÇÒ´çµÇ±â ¶§¹®¿¡ ÁÖ¼Ò¶ó´Â °ÍÀÌ ÀÖÀ» ¼ö°¡ ¾ø´Ù */ ¦¢ ¦¢ ¦¢ ¦¢ ¦¢ ¦¦¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¥ ¡Ø Æ÷ÀÎÅÍ º¯¼ö¿¡ ¹Ù·Î ÁÖ¼Ò¸¦ ÇÒ´ç ÁÖ¼Ò´Â ¾çÀÇ Á¤¼öÀ̱⠶§¹®¿¡ ´ÙÀ½°ú °°ÀÌ Á÷Á¢ ÁÖ¼Ò¸¦ ÇÒ´çÇÏ´Â °ÍÀÌ ½ÇÁ¦·Î °¡´ÉÇÏ´Ù ¦£¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¤ ¦¢ int *ip = (int *) 2000; /* ¹Ýµå½Ã Çü º¯È¯ ¿¬»êÀÚ¸¦ »ç¿ëÇÏ¿©¾ß ÇÑ´Ù */ ¦¢ ¦¦¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¥ À§¿Í °°ÀÌ Á÷Á¢ ÁÖ¼Ò¸¦ ÇÒ´çÇÏ¿´À» ¶§¿¡´Â ´ç¿¬È÷ ±× ÁÖ¼Ò¿¡ ÇØ´ç µ¥ÀÌÅÍ À¯ÇüÀÇ µ¥ÀÌÅÍ°¡ ÀÖ¾î ¾ß ÇÑ´Ù. ¿¹¸¦ µé¾î À§ÀÇ °æ¿ì¿¡ 2000¹øÁö¿¡ int À¯ÇüÀÇ µ¥ÀÌÅÍ°¡ ÀÖ¾î¾ß ÇÑ´Ù. ±×·¸Áö ¾ÊÀº °æ ¿ì¿¡´Â À§ÀÇ Æ÷ÀÎÅ͸¦ »ç¿ëÇÒ ¶§ ¿¡·¯°¡ ¹ß»ýÇÏ°Ô µÈ´Ù. PCÀÇ °æ¿ì¿¡´Â ÁÖ¼Ò°¡ °íÁ¤µÇ¾î ÀÖ´Â °æ¿ì°¡ ¸¹±â ¶§¹®¿¡ À§¿Í °°ÀÌ ÁÖ¼Ò¸¦ Á÷Á¢ ÁöÁ¤ÇØ ÁÖ´Â °ÍÀÌ Àǹ̰¡ Àִµ¥, ƯÈ÷ ºñµð¿À ¸Þ¸ð¸®¸¦ ¾×¼¼½ºÇÒ ¶§¿¡´Â Á÷Á¢ ÁÖ¼Ò¸¦ ÇÒ´çÇÏ´Â °ÍÀÌ ´õ È¿À² ÀûÀÎ °æ¿ì°¡ ¸¹´Ù. ¡Ø NULL Æ÷ÀÎÅÍ Æ÷ÀÎÅÍ°¡ °¡Áú ¼ö ÀÖ´Â °ª Áß¿¡ NULLÀ̶õ °ÍÀÌ Àִµ¥, ¸ÕÀú #include ¸¦ ¼±¾ðÇؾ߸¸ »ç¿ëÇÒ ¼ö ÀÖ´Ù. ÀÌ´Â ½ÇÁ¦·Î 0ÀÇ °ªÀε¥ Æ÷ÀÎÅÍ º¯¼ö°¡ ÀÌ °ªÀ» °®°Ô µÇ¸é 0¹øÁö¸¦ °ªÀ¸·Î °®´Â °ÍÀÌ ¾Æ´Ï¶ó ¾ÆÁ÷ °ªÀÌ ¾ø´Â °ÍÀÌ µÈ´Ù. µû¶ó¼­ Æ÷ÀÎÅÍ º¯¼ö¿¡ ÃʱⰪÀ» ÁÖ°í ½ÍÀ» ¶§¿¡´Â ÀÌ NULLÀ» ´ÙÀ½°ú °°ÀÌ ÁÖ¸é µÈ´Ù. ¦£¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¤ ¦¢ #include ¦¢ ¦¢ char *cp = NULL; ¦¢ ¦¢ : ¦¢ ¦¢ ¦¢ ¦¦¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¥ < '*' ¿¬»êÀÚ > Æ÷ÀÎÅÍ º¯¼ö¸¦ »ç¿ëÇÏ´Â ¸ñÀûÀº ±× º¯¼ö°¡ °ªÀ¸·Î °®°í ÀÖ´Â ÁÖ¼ÒÀÇ µ¥ÀÌÅ͸¦ »ç¿ëÇϱâ À§Çؼ­ ÀÌ´Ù. Æ÷ÀÎÅÍ º¯¼ö°¡ °ªÀ¸·Î °®°í ÀÖ´Â ÁÖ¼ÒÀÇ µ¥ÀÌÅ͸¦ »ç¿ëÇÏ°íÀÚ ÇÒ ¶§¿¡´Â '*'¸¦ »ç¿ëÇÏ¸é µÇ ´Âµ¥, ´ÙÀ½°ú °°Àº ÇüÅ·Π»ç¿ëÇÑ´Ù. ¦£¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¤ ¦¢ int i = 100, j; ¦¢ ¦¢ int *ip = &i; ¦¢ ¦¢ j = *ip; ¦¢ ¦¢ ¦¢ ¦¦¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¥ ip°¡ iÀÇ ÁÖ¼Ò¸¦ °ªÀ¸·Î °®°í Àֱ⠶§¹®¿¡ *ip´Â ip°¡ °®°í ÀÖ´Â ÁÖ¼ÒÀÇ °ª, Áï iÀÇ °ªÀÌ µÈ´Ù. µû ¶ó¼­ j´Â iÀÇ °ªÀÎ 100À» °®°Ô µÇ¸ç °á±¹ j = *ip; ´Â j = i; ¿Í °°Àº Àǹ̸¦ °®°Ô µÈ´Ù. ¶Ç ´ÙÀ½ÀÇ °æ¿ì¸¦ º¸¸é ¦£¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¤ ¦¢ int i = 10, j; ¦¢ ¦¢ int *ip = &i, *jp; ¦¢ ¦¢ jp = ip; ¦¢ ¦¢ j = *jp + *ip; ¦¢ ¦¢ ¦¢ ¦¦¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¥ ip°¡ iÀÇ ÁÖ¼Ò¸¦ °®°í Àִµ¥ ipÀÇ °ªÀ» jp¿¡ ÇÒ´çÇßÀ¸¹Ç·Î jpµµ iÀÇ ÁÖ¼Ò¸¦ °®°í ÀÖ°Ô µÈ´Ù. µû¶ó ¼­ *ip¿Í *jp´Â ¸ðµÎ i°¡ µÇ¸ç µû¶ó¼­ À§ÀÇ j = *jp + *ip´Â j = i + i°¡ µÇ¾î jÀÇ °ªÀº 20ÀÌ µÈ´Ù. À§¿¡¼­´Â ip¿Í jp µÑ ´Ù int À¯ÇüÀÇ µ¥ÀÌÅÍÀÇ ÁÖ¼Ò¸¦ °®´Â Æ÷ÀÎÅÍ¿´±â ¶§¹®¿¡ jp = ip¿Í °°ÀÌ °ª À» ±×´ë·Î ÇÒ´çÇÒ ¼ö ÀÖ¾úÁö¸¸ ¸¸¾à ¼­·Î ´Ù¸¥ µ¥ÀÌÅÍ À¯ÇüÀÇ ÁÖ¼Ò¸¦ °ªÀ¸·Î °®´Â Æ÷ÀÎÅÍ ¿´´Ù¸é ÀÌ¿Í °°ÀÌ ÇÒ´çÇÒ ¼ö´Â ¾ø°í ´ÙÀ½°ú °°ÀÌ Çü º¯È¯ ¿¬»êÀÚ¸¦ »ç¿ëÇؾ߸¸ ÇÑ´Ù. ¦£¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¤ ¦¢ int i = 10, *ip = &i; ¦¢ ¦¢ char c = 'A', *cp = &c; ¦¢ ¦¢ cp = (char *)ip; ¦¢ ¦¢ ¦¢ ¦¦¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¥ ±×·¯³ª À§¿Í °°ÀÌ Çß´Ù°í Çؼ­ cpÀÇ °ª°ú ipÀÇ °ªÀÌ ´Ù¸¥ °ÍÀº ¾Æ´Ï´Ù. µÑ ´Ù º¯¼ö iÀÇ ÁÖ¼Ò¸¦ °ªÀ¸·Î °®°Ô µÇ´Âµ¥ '*' ¿¬»êÀÚ¸¦ »ç¿ëÇÒ ¶§ Â÷ÀÌ°¡ ¹ß»ýÇÑ´Ù. Áï *ipÀÇ °æ¿ì¿¡´Â ÁÖ¼Ò¿¡ int À¯Çü ÀÇ µ¥ÀÌÅÍ°¡ ÀÖ´Ù°í °£ÁÖÇÏ¿© ±× ÁּҷκÎÅÍ 2¹ÙÀÌÆ®ÀÇ °ªÀ» °¡Á® ¿À´Â ¹Ý¸é *cpÀÇ °æ¿ì¿¡´Â ÁÖ ¼Ò¿¡ char À¯ÇüÀÇ µ¥ÀÌÅÍ°¡ ÀÖ´Ù°í °£ÁÖÇÏ¿© ±× ÁּҷκÎÅÍ 1¹ÙÀÌÆ®ÀÇ °ª¸¸ °®°í ¿À°Ô µÈ´Ù. ´ÙÀ½¿¡ ³ª¿À´Â µÎ ÇÁ·Î±×·¥Àº À̸¦ Àß ³ªÅ¸³»°í ÀÖ´Ù. main() { int i; /* intÇü º¯¼öÀÇ ³»¿ëÀº ÇÊ¿ä·ÎÇÑ int°ªÀ» ÀúÀåÇÒ ¼ö ÀÖ°í */ int *iptr; /* intÇü Æ÷ÀÎÅÍ º¯¼öÀÇ ³»¿ëÀº intÇü º¯¼öÀÇ ¹øÁö¼ö¸¦ ÀúÀå ÇÒ ¼ö ÀÖ´Ù */ i = 256; /* 256 == 0x100 */ iptr = &i; printf("%d\n",*iptr); /* *iptrÀº iptrÀÌ °¡¸®Å°°í ÀÖ´Â ¸Þ¸ð¸®ÀÇ ³»¿ë */ } ¦£¦¡¦¡¦¡¦¤ ¦¢ °á°ú ¦¢ ¦¦¦¡¦¡¦¡¦¥ --------------------------------------------------------------------------------- 256 main() { int i; char *iptr; i = 256; iptr = (char *)&i; /* Çü º¯È¯ ¿¬»êÀÚ¸¦ »ç¿ëÇÏÁö ¾ÊÀ¸¸é °æ°í ¸Þ½ÃÁö°¡ Ãâ·ÂµÈ´Ù */ printf("%d\n",*iptr); /* iptrÀÌ charÇüÀ̱⠶§¹®¿¡ 1¹ÙÀÌÆ®¸¸À» ÂüÁ¶ÇÑ´Ù */ } ¦£¦¡¦¡¦¡¦¤ ¦¢ °á°ú ¦¢ ¦¦¦¡¦¡¦¡¦¥ --------------------------------------------------------------------------------- 0 À§ ÇÁ·Î±×·¥ÀÇ ¸Þ¸ð¸® »óŸ¦ ±×¸²À¸·Î º¸¸é ´ÙÀ½°ú °°´Ù. +----+ 30AB | 00 |---+------- º¯¼ö i°¡ ¸¸µé¾îÁø Àå¼Ò (³»¿ëÀÌ µé¾îÀÖ´Â »óŸ¦ º¸¸é ¾ÕµÚ°¡ +----+ | ¹Ù²î¾î¼­ µé¾úÀ½À» º¼ ¼ö Àִµ¥ ÀÌ°ÍÀº IBM-PCÀÇ Æ¯¼º»ó ±×·¯ÇÑ 30AC | 01 |---+ ¹æ¹ýÀ¸·Î µ¥ÀÌÅÍ°¡ µé¾î°¡°Ô µÈ´Ù) ------+----+----- 30AD | AB |---+------- Æ÷ÀÎÅÍ º¯¼ö iptrÀÌ ¸¸µé¾îÁø Àå¼Ò +----+ | (iptrÀÌ intÇüÀÏ ¶§ 30ABºÎÅÍ 30AC±îÁö 2¹ÙÀÌÆ®¸¦ ÂüÁ¶ÇÏ´Â ¹Ý¸é 30AE | 30 |---+ iptrÀÌ charÇüÀ̱⠶§¹®¿¡ 30AB¹øÁöÀÇ 1¹ÙÀÌÆ® ¸¸À» ÂüÁ¶ÇÑ´Ù. ------+----+----- ±×·¸±â ¶§¹®¿¡ °á°ú´Â 0ÀÌ µÈ´Ù) ÀÌó·³ ¸Þ¸ð¸®¸¦ Â÷ÁöÇÏ´Â µ¥´Â Æ÷ÀÎÅÍÀÇ ÇüÀÌ ¿µÇâÀ» ¹ÌÄ¡Áö ¸øÇÏÁö¸¸ ¸Þ¸ð¸®¸¦ ÂüÁ¶ÇÏ´Â µ¥´Â Ä¿´Ù¶õ Â÷ÀÌ°¡ ÀÖ´Ù. ÀÌ»óÀÇ °á°ú¸¦ ´Ù½ÃÇѹø Á¤¸®ÇÏ¸é ´ÙÀ½°ú °°´Ù. ¦£¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¤ ¦¢ int *iptr; À̶ó°í Á¤ÀÇÇßÀ» ¶§ ¦¢ ¦¢ iptr : ´Ù¸¥ intÇü º¯¼öÀÇ ¹øÁö¸¦ ÀúÀåÇÑ´Ù. ¦¢ ¦¢ printf("%p",iptr); ¦¢ ¦¢ ¢Ñ iptrÀÌ °¡Áö°í ÀÖ´Â ¹øÁö(iÀÇ ÁÖ¼Ò)°¡ È­¸é¿¡ Ç¥½ÃµÈ´Ù. ¦¢ ¦¢ *iptr : iptrÀÌ °¡¸®Å°°í ÀÖ´Â ¹øÁöÀÇ ³»¿ë¿¡ ÇØ´çµÈ´Ù. Áï *iptr°ú i´Â °°Àº °ÍÀÌ ¦¢ ¦¢ µÇ´Âµ¥ iptrÀÌ i¸¦ °¡¸®Å³ ¶§, *iptrÀº iÀÇ (alias : º°¸í)´Ù¸¥ ¸íĪÀ̶ó ÇÑ´Ù. ¦¢ ¦¢ printf("%d",*iptr); ¦¢ ¦¢ ¦¢ ¦¢ int i; ¶ó°í Á¤ÀÇÇßÀ» ¶§ ¦¢ ¦¢ i : ¸Þ¸ð¸®»ó¿¡ Á¤¼ö°ªÀ» ÀúÀåÇÒ Àå¼Ò¸¦ ¸¸µç´Ù. ¦¢ ¦¢ &i : i°¡ ¸¸µé¾îÁø ¸Þ¸ð¸®»óÀÇ ¹øÁö¸¦ ÀǹÌÇÑ´Ù. ¦¢ ¦¢ ¦¢ ¦¢ ¦¢ ¦¢ ¦¢ ¦¢ ¦¢ ¦¢ ¦¢ ¦¦¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¥ '*' ¿¬»êÀÚÀÇ °è»ê °á°ú´Â ±× ÁÖ¼ÒÀÇ °ªÀÌÁö¸¸, ±× ÁÖ¼ÒÀÇ º¯¼ö¿Í ¶È°°ÀÌ »ç¿ëÇÒ ¼ö ÀÖ´Ù´Â °ÍÀÌ ´Ù. Áï ¹Ýµå½Ã º¯¼ö°¡ ¿Í¾ß ÇÏ´Â °÷¿¡ '*' ¿¬»êÀÚ°¡ ºÙÀº ¼ö½ÄÀÌ ¿Ã ¼öµµ ÀÖ´Ù. ¿¹¸¦ µé¸é ´ÙÀ½°ú °°´Ù. ¦£¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¤ ¦¢ int i = 10, *ip = &i; ¦¢ ¦¢ *ip = 100; ¦¢ ¦¢ ++*ip; ¦¢ ¦¢ ip = &*ip; ¦¢ ¦¢ ¦¢ ¦¦¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¥ '='ÀÇ ¿ÞÂÊÀ̳ª ++ ¿¬»êÀÚ¿Í & ¿¬»êÀÚÀÇ ÀÎÀÚ¿¡´Â ¹Ýµå½Ã º¯¼ö°¡ ¿Í¾ß Çϴµ¥, À§¿¡¼­´Â '*' ¿¬ »êÀÚ°¡ ¿À°í ÀÖ´Ù. '*' ¿¬»êÀÚ´Â ±×°ÍÀÌ ÁÖ¼Ò¸¦ °®°í ÀÖ´Â º¯¼ö ÀÚü¸¦ ÀǹÌÇϱ⠶§¹®¿¡ ÀÌ°ÍÀÌ °¡´ÉÇÏ°Ô µÈ´Ù. ip°¡ iÀÇ ÁÖ¼Ò¸¦ °ªÀ¸·Î °®°í Àֱ⠶§¹®¿¡ *ip´Â ¹Ù·Î i°¡ µÈ´Ù. µû¶ó¼­ *ip = 100Àº i = 100°ú °°À¸¸ç iÀÇ °ªÀÌ 100À¸·Î º¯ÇÏ°Ô µÈ´Ù. °á±¹ i º¯¼ö ÀÚü¸¦ »ç¿ëÇÏÁö ¾Ê°í ´Ù¸¥ ¹æ¹ý¿¡ ÀÇÇØ iÀÇ °ªÀ» º¯°æÇÑ °ÍÀÌ µÈ´Ù. ¸¶Âù°¡Áö·Î ++*ip´Â ++i¿Í °°±â ¶§¹®¿¡ iÀÇ °ªÀÌ 1Áõ°¡ÇÏ¿© 101ÀÌ µÈ´Ù. ¸¶Áö¸·ÀÇ ip = &*ip´Â *ip°¡ iÀ̹ǷΠip = &i°¡ µÇ¾î °á±¹ ÀÚ½ÅÀÇ °ªÀ» ±×´ë·Î À¯ÁöÇÏ°Ô µÈ´Ù. Çϳª ´õ ÁÖÀÇÇÒ °ÍÀº ++*ip¿Í *ip++°¡ ´Ù¸£´Ù´Â °ÍÀÌ´Ù. ++¿Í '*'´Â ¿ì¼± ¼øÀ§°¡ °°À¸³ª °áÇÕ¹æ ÇâÀÌ ¿À¸¥ÂÊ¿¡¼­ ¿ÞÂÊÀ̱⠶§¹®¿¡ ++*ip´Â ++(*ip)·Î ó¸®µÇ¾î °á±¹ ++i°¡ µÇÁö¸¸ *ip++ÀÇ °æ¿ì¿¡ ´Â *(ip++)·Î 󸮵ȴÙ. À̶§ ipµÚ¿¡ ++°¡ ºÙ¾ú±â ¶§¹®¿¡ ÀÌ´Â ³ªÁß¿¡ °è»êµÇ¹Ç·Î *ip°¡ µÇ°í ÀÌ ¸¦ °è»êÇÑ ÈÄ(ÀÌ´Â iÀÌ´Ù) ip++¿¡ ÀÇÇØ ipÀÇ °ªÀ» Áõ°¡ÇÏ°Ô µÈ´Ù. µû¶ó¼­ ÀÌ °æ¿ì iÀÇ °ªÀº º¯ÇÏÁö ¾Ê°í ¿ÀÈ÷·Á ipÀÇ °ªÀÌ º¯ÇÏ°Ô µÈ´Ù. ¸¸¾à *ip¿¡ ´ëÇØ ++¸¦ µÚ¿¡ Àû¿ëÇÏ°í ½ÍÀ¸¸é (*ip)++¿Í °°ÀÌ °ýÈ£¸¦ »ç¿ëÇÏ¸é µÈ´Ù. < Æ÷ÀÎÅ͸¦ ÀÌ¿ëÇÑ ÂüÁ¶¿¡ ÀÇÇÑ È£Ãâ > C¿¡¼­´Â ¸ðµç °ÍÀ» °ª¿¡ ÀÇÇÑ È£Ãâ ÇüÅ·ΠÀÎÀÚ¸¦ Àü´ÞÇÏ°í ÀÖ´Ù. °ª¸¸ ³Ñ¾î°¡±â ¶§¹®¿¡ ¹ÞÀº ÂÊ¿¡¼­´Â ºÎ¸¥ ÂÊÀÇ µ¥ÀÌÅ͸¦ º¯°æÇÒ ¼ö ¾ø°Ô µÈ´Ù. ¹Ý¸é¿¡ ÂüÁ¶¿¡ ÀÇÇÑ È£ÃâÀÇ °æ¿ì¿¡´Â º¯¼ö ÀÚü°¡ ³Ñ¾î°¡±â ¶§¹®¿¡ ¹ÞÀº ÂÊ¿¡¼­ ºÎ¸¥ ÂÊÀÇ µ¥ÀÌÅ͸¦ º¯°æÇÒ ¼ö ÀÖ°Ô µÇ´Âµ¥ C¿¡¼­´Â ÂüÁ¶ ¿¡ ÀÇÇÑ È£ÃâÀ» ÀüÇô Áö¿øÇÏÁö ¾Ê±â ¶§¹®¿¡ À̸¦ ±âº»ÀûÀ¸·Î´Â ÇÒ ¼ö ¾øÁö¸¸ Æ÷ÀÎÅ͸¦ »ç¿ëÇϸé ÀÌ¿Í °°Àº È¿°ú¸¦ ³¾ ¼ö ÀÖ´Ù. Áï ½ÇÀÎÀÚ¿¡ °ªÀ» ÁÖ´Â °ÍÀÌ ¾Æ´Ï¶ó º¯¼ö°¡ ÇÒ´çµÇ¾î ÀÖ´Â ¹øÁö¸¦ °Ç³»ÁÖ¹Ç·Î½á °£Á¢ÀûÀÎ ÂüÁ¶¿¡ ÀÇÇÑ È£ÃâÀ» ÇàÇÑ´Ù. ´ÙÀ½ÀÌ ±× ÇÁ·Î±×·¥ÀÌ´Ù. main() { void swap(int *, int *); int i = 10, j = 20; printf("i = %d, j = %d\n",i,j); swap(&i,&j); /* & ¿¬»êÀÚ¸¦ »ç¿ëÇÏ¿© ÁÖ¼Ò¸¦ ³Ñ°ÜÁÖ°í ÀÖ´Ù */ printf("i = %d, j = %d\n",i,j); } void swap(int *ip, int *jp) { /* ¹Þ´Â ÂÊÀº ÁÖ¼Ò¸¦ ¹Þ¾Æ¾ß ÇϹǷΠÆ÷ÀÎÅÍ°¡ µÈ´Ù */ int t; t = *ip; *ip = *jp; *jp = t; } ¦£¦¡¦¡¦¡¦¤ ¦¢ °á°ú ¦¢ ¦¦¦¡¦¡¦¡¦¥ --------------------------------------------------------------------------------- i = 10, j = 20 i = 20, j = 10 °á°úÀûÀ¸·Î º¯¼ö i¿Í j¸¦ ³Ñ°ÜÁØ ÂüÁ¶¿¡ ÀÇÇÑ È£Ãâ°ú °°Àº °á°ú¸¦ ³º°Ô µÇ¾ú´Ù. ±×·¯³ª ½ÇÁ¦·Î ÂüÁ¶¿¡ ÀÇÇÑ È£Ãâ·Î ÀÎÀÚ°¡ Àü´ÞµÈ °ÍÀº ¾Æ´Ï´Ù. ¿ª½Ã °ª¸¸ ³Ñ¾î °¬´Âµ¥ ±× °ªÀÌ ¹Ù·Î ÁÖ¼Ò¿´±â ¶§¹®¿¡ swap¿¡¼­ mainÀÇ º¯¼ö¸¦ »ç¿ëÇÒ ¼ö ÀÖ¾ú´ø °ÍÀÌ´Ù. Áï ¾î¶² º¯¼ö¸¦ ÂüÁ¶¿¡ ÀÇÇÑ È£Ãâ·Î Àü´ÞÇÏ°íÀÚ ÇÒ ¶§¿¡´Â ºÎ¸£´Â ÂÊ¿¡¼­´Â ±× º¯¼öÀÇ ÁÖ¼Ò¸¦ ³Ñ°ÜÁÖ°í, ¹Þ´Â ÂÊ¿¡¼­´Â ÀÌ¿¡ ´ëÇÑ Æ÷ ÀÎÅÍ º¯¼ö·Î ¹ÞÀ¸¸é µÈ´Ù. ±×·¯¸é ¹Þ´Â ÂÊ¿¡¼­ ºÎ¸£´Â ÂÊÀÇ º¯¼ö¸¦ ¸¶À½´ë·Î »ç¿ëÇÒ ¼ö°¡ ÀÖ°Ô µÈ´Ù. ´ÙÀ½Àº ÀÌÀÇ ¸î °¡Áö ¿¹ÀÌ´Ù. #include read_number(long int *res) { /* ÇϳªÀÇ Á¤¼ö¸¦ ÀÐÀ½ */ int base = 10; /* ±âº» Áø¹ýÀº 10 */ int sign = 1; /* ±âº» ºÎÈ£´Â + */ char c; void skip_last(void); /* ÇÔ¼ö ¼±¾ð */ *res = 0l; again: while ((c = getchar()) == ' ' || c == '\t'); /* óÀ½ ¿Í Àº ¹«½Ã */ switch (c) { case 'd': break; /* d·Î ½ÃÀÛÇϸé 10Áø¼ö */ case 'b': base = 2; /* b·Î ½ÃÀÛÇϸé 2Áø¼ö */ break; case 'o': base = 8; /* o·Î ½ÃÀÛÇϸé 8Áø¼ö */ break; case 'x': base = 16; /* x·Î ½ÃÀÛÇϸé 16Áø¼ö */ break; case '+': goto again; /* +¸é ºÎÈ£¿¡ º¯È­°¡ ¾øÀ½ */ case '-': sign *= -1; /* -¸é ºÎÈ£°¡ Á¤¹Ý´ë·Î */ goto again; case EOF: return (EOF); default : ungetc(c,stdin); /* Çϳª ´õ ÀÐÀ» °ÍÀ» ´ÙÀ½¿¡ Àбâ À§ÇØ º¸°ü */ } while ((c = getchar()) != EOF && (((base != 16) && (c >= '0') && (c - '0' <= base - 1)) || ((base == 16) && ((c >= '0' && c <= '9') || (c >= 'a' && c <= 'f') || (c >= 'A' && c <= 'F'))))) /* ÀÐÀº ¹®ÀÚ°¡ Áø¹ý¿¡ ¸Â´Â µ¿¾È */ switch (c) { case 'a': /* 16Áø¼öÀÇ A */ case 'A': *res = *res * base + 10l; break; case 'b': /* 16Áø¼öÀÇ B */ case 'B': *res = *res * base + 11l; break; case 'c': /* 16Áø¼öÀÇ C */ case 'C': *res = *res * base + 12l; break; case 'd': /* 16Áø¼öÀÇ D */ case 'D': *res = *res * base + 13l; break; case 'e': /* 16Áø¼öÀÇ E */ case 'E': *res = *res * base + 14l; break; case 'f': /* 16Áø¼öÀÇ F */ case 'F': *res = *res * base + 15l; break; default : *res = *res * base + c - '0'; /* ÀÐ¾î µéÀÎ ¹®ÀÚ¸¦ ¼ýÀÚ·Î º¯È¯ */ } if (c == EOF) /* È­ÀÏÀÇ ³¡À̸é ÇÒ °ÍÀÌ ¾øÀ½ */ return (EOF); if (c == ' ' || c == '\t') /* ³ª¸ÓÁö ¿Í À» ¹«½Ã */ skip_last(); if (c == '\n' || c == ' ' || c == '\t') { *res *= sign; /* Áö±Ý±îÁöÀÇ °á°ú¿¡ ºÎÈ£¸¦ °öÇÔ */ return (1); } return (0); /* ±×·¸Áö ¾ÊÀ¸¸é ¿¡·¯ */ } void skip_last() { /* '\n'ÀÌ ³ª¿Ã ¶§±îÁö ÀÐ¾î ¹ö¸®´Â ÇÔ¼ö */ while (getchar() != '\n'); } main() { long int i; long int sum = 0; int status; while ((status = read_number(&i)) != EOF) { /* ÀÔ·ÂÀÇ ³¡±îÁö ¼ýÀÚ¸¦ Àоî */ if (status == 0) { printf("Input error!!\n"); return (1); } sum += i; /* ÇÕÀ» ±¸ÇÔ */ } printf("The sum is %ld.\n",sum); } ¦£¦¡¦¡¦¡¦¤ ¦¢ °á°ú ¦¢ ¦¦¦¡¦¡¦¡¦¥ --------------------------------------------------------------------------------- b11000111 ³ú o234567 ³ú xabcdef ³ú 2525 ³ú ^Z ³ú The sum is 11342346. main() { int x, y, z; void swap(int *, int *); printf("Input three numbers -> "); scanf("%d%d%d",&x,&y,&z); /* scanf´Â ÂüÁ¶¿¡ ÀÇÇÑ È£Ãâ·Î º¯¼ö¸¦ ¹Þ´Â´Ù scanf¿¡¼­ x,y,zÀÇ °ªÀ» º¯°æÇÒ ¼ö ÀÖ¾î¾ß Çϱ⠶§¹®ÀÌ´Ù */ if (x > y) swap(&x,&y); if (x > z) swap(&x,&z); if (y > z) swap(&y,&z); printf("Sorted result : %d %d %d\n",x,y,z); } void swap(int *ip, int *jp) { int t; t = *ip; *ip = *jp; *jp = t; } ¦£¦¡¦¡¦¡¦¤ ¦¢ °á°ú ¦¢ ¦¦¦¡¦¡¦¡¦¥ --------------------------------------------------------------------------------- Input three number -> 250 72 128 ³ú Sorted result : 72 128 250 < Æ÷ÀÎÅÍ ¿¬»ê > Æ÷ÀÎÅÍ º¯¼ö´Â intÇüÀÏ ¼öµµ ÀÖ°í, charÇüÀÏ ¼öµµ ÀÖ°í floatÇü Àϼöµµ ÀÖ´Ù. ÇÏÁö¸¸ ±×°Í¿¡ ¹«°ü ÇÏ°Ô ¸Þ¸ð¸®¿¡¼­ Â÷ÁöÇÏ´Â ¾çÀº ´ÜÁö 2¹ÙÀÌÆ®¸¸À» Â÷ÁöÇÑ´Ù. ¦£¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¤ ¦¢ char *cptr; ¡æ charÇü Æ÷ÀÎÅÍ ¦¢ ¦¢ int *iptr; ¡æ intÇü Æ÷ÀÎÅÍ ¦¢ ¦¢ float *fptr; ¡æ floatÇü Æ÷ÀÎÅÍ ¦¢ ¦¢ ¦¢ ¦¢ ------+-----+------ ¦¢ ¦¢ 30AB | | -+ ¦¢ ¦¢ +-----+ +------ cptrÀÌ Â÷ÁöÇÏ´Â ¸Þ¸ð¸® ¦¢ ¦¢ 30AC | | -+ ¦¢ ¦¢ ------+-----+------ ¦¢ ¦¢ 30AD | | -+ ¦¢ ¦¢ +-----+ +------ iptrÀÌ Â÷ÁöÇÏ´Â ¸Þ¸ð¸® ¦¢ ¦¢ 30AE | | -+ ¦¢ ¦¢ ------+-----+------ ¦¢ ¦¢ 30AF | | -+ ¦¢ ¦¢ +-----+ +------ fptrÀÌ Â÷ÁöÇÏ´Â ¸Þ¸ð¸® ¦¢ ¦¢ 30B0 | | -+ ¦¢ ¦¢ ------+-----+------ ¦¢ ¦¢ ¦¢ ¦¢ ¦¢ ¦¢ ¦¢ ¦¢ ¦¢ ¦¢ ¦¢ ¦¢ ¦¢ ¦¢ ¦¢ ¦¢ ¦¢ ¦¦¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¥ ¸Þ¸ð¸®¿¡¼­ Â÷ÁöÇÏ´Â ¾çÀ» º¸¸é Æ÷ÀÎÅÍÀÇ Çü°ú´Â ¹«°üÇÏ°Ô ´ÜÁö 2¹ÙÀÌÆ®¸¸À» Â÷ÁöÇÏÁö¸¸ Æ÷ÀÎÅÍ º¯¼ö ¾Õ¿¡ Á¤ÀÇÇÑ ÇüÀº »ó´çÈ÷ Áß¿äÇÑ ¿ªÇÒÀ» ÇÑ´Ù. °¡¸®Å°°í ÀÖ´Â ¸Þ¸ð¸®°¡ intÇüÀÎÁö, charÇüÀÎ Áö¸¦ ÆÇ´ÜÇÏ°Ô ÇØÁÖ´Â ¿ªÇÒÀ» ÇÑ´Ù. ¿¹¸¦ µé¾îº¸¸é void main(void) { int i, *iptr; i = 5; iptr = &i; printf("iptr = %p\n",iptr); iptr++; printf("iptr = %p\n",iptr); iptr = iptr + 2; printf("iptr = %p\n",iptr); } ¦£¦¡¦¡¦¡¦¤ ¦¢ °á°ú ¦¢ ¦¦¦¡¦¡¦¡¦¥ --------------------------------------------------------------------------------- iptr = FFD2 iptr = FFD4 iptr = FFD8 Æ÷ÀÎÅÍÀÇ Áõ°¨Àº ±× ÇüÀÇ Å©±â¿¡ µû¶ó Áõ°¡ ¶Ç´Â °¨¼ÒÇÑ´Ù. Áï intÇü Æ÷ÀÎÅÍ º¯¼ö¸¦ 1Áõ°¡ÇÏ¸é ½ÇÁ¦ ¹øÁö¼ö °ªÀº 2°¡ Áõ°¡µÇ¸ç floatÇüÀº 4°¡, charÇüÀº 1ÀÌ Áõ°¡µÊÀ» ¾Ë ¼ö ÀÖ´Ù. Áï ¼ýÀÚÀûÀÎ µ¡¼ÀÀÌ ¾Æ´Ï¶ó ´ÙÀ½ ¸î ¹ø°¶õ Àǹ̸¦ °®´Âµ¥, ½ÇÁ¦·Î ÁÖ¼Ò´Â ±× Æ÷ÀÎÅÍÀÇ µ¥ÀÌÅÍ À¯ÇüÀÇ Å©±â¸¸ Å­ Áõ°¡ÇÏ°Ô µÈ´Ù. ´ÙÀ½ÀÇ ±×¸²Àº À̸¦ ³ªÅ¸³»°í ÀÖ´Ù. data *p; ÁÖ¼Ò +------------+ p -----------------¡æ | data0 | N +------------+ p + 1 -------------¡æ | data1 | N + 1 * sizeof(data) +------------+ p + 2 -------------¡æ | data2 | N + 2 * sizeof(data) +------------+ p + 3 -------------¡æ | data3 | N + 3 * sizeof(data) +------------+ ¸¶Âù °¡Áö·Î Æ÷ÀÎÅÍ º¯¼ö¿¡¼­ ¾î¶² °ªÀ» »©°Ô µÇ¸é ±× °ª ¸¸Å­ ÀÌÀü µ¥ÀÌÅ͸¦ ÀǹÌÇÏ°Ô µÈ´Ù. data *p; ÁÖ¼Ò +------------+ p - 3 -------------¡æ | data-3 | N - 3 * sizeof(data) +------------+ p - 2 -------------¡æ | data-2 | N - 2 * sizeof(data) +------------+ p - 1 -------------¡æ | data-1 | N - 1 * sizeof(data) +------------+ p -----------------¡æ | data0 | N +------------+ Çϳª ´õ »ç¿ëÇÒ ¼ö ÀÖ´Â °ÍÀÌ Àִµ¥ ÀÌ´Â °°Àº µ¥ÀÌÅÍ À¯ÇüÀÇ Æ÷ÀÎÅÍµé »çÀÌÀÇ »¬¼ÀÀÌ´Ù. ¦£¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¤ ¦¢ int *ip = (int *) 1000, *jp = (int *) 1200; ¦¢ ¦¢ printf("jp - ip = %d\n",jp - ip); ¦¢ ¦¦¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¥ À§ÀÇ °æ¿ì´Â 1000¹øÁö¿Í 1200¹øÁö »çÀÌ¿¡ int À¯ÇüÀÇ µ¥ÀÌÅ͵éÀÌ Á× µé¾î ÀÖ´Ù°í °¡Á¤ÇÏ¿© jpÀÇ µ¥ÀÌÅÍ¿Í ipÀÇ µ¥ÀÌÅÍ »çÀÌ°¡ ¼ø¼­·Î ¸î ¹ø° Â÷ÀÌ ÀÎÁö¸¦ ÀǹÌÇÏ´Â °ÍÀ¸·Î ÀÌ´Â µÎ Æ÷ÀÎÅÍ º¯¼ö ÀÇ °ªÀ» »« ÈÄ À̸¦ int À¯ÇüÀÇ Å©±â·Î ³ª´©¸é µÈ´Ù. µû¶ó¼­ jp - ip´Â (jp - ip) / sizeof(data)¿Í °°Àº Àǹ̸¦ °®°Ô µÇ¸ç ´ÙÀ½°ú °°Àº Ãâ·ÂÀ» ³»°Ô µÈ´Ù. ¦£¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¤ ¦¢ jp - ip = 100 (MSC, TC) ¦¢ ¦¦¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¥ ÀÌ¿ÜÀÇ ´Ù¸¥ ¿¬»êÀÚ³ª ¼ö½ÄÀº ¸ðµÎ »ç¿ëÇÒ ¼ö ¾ø°í, »ç¿ëÇϸé ÄÄÆÄÀϽà ¿¡·¯°¡ ¹ß»ýÇÏ°Ô µÈ´Ù. ´ÙÀ½Àº Æ÷ÀÎÅÍ ¿¬»ê¿¡¼­ »ç¿ëÇÒ ¼ö ¾ø´Â °ÍµéÀÌ´Ù. ¦£¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¤ ¦¢ int *ip, *jp; ¦¢ ¦¢ char *cp; ¦¢ ¦¢ ©ç ip + jp /* µÎ Æ÷ÀÎÅÍ °£¿¡ µ¡¼ÀÀº ÇÒ ¼ö ¾ø´Ù */ ¦¢ ¦¢ ©è ip * 2 /* Æ÷ÀÎÅÍ º¯¼ö¿¡ °ö¼ÀÀ» ÇÏ°Ô µÇ¸é ÄÄÆÄÀϽà ¿¡·¯°¡ ¹ß»ýÇÑ´Ù */ ¦¢ ¦¢ ©é jp / 3 /* »ç¿ëÇÒ ¼ö ¾ø´Â ¿¬»êÀÚ¸¦ »ç¿ëÇß´Ù */ ¦¢ ¦¢ ©ê ip + 3.2 /* Á¤¼ö°ª¸¸ ´õÇØ¾ß Çϴµ¥ ½Ç¼ö°ª(3.2)À» ´õÇß´Ù */ ¦¢ ¦¢ ©ë ip - cp /* °°Àº µ¥ÀÌÅÍ À¯ÇüÀÇ Æ÷ÀÎÅÍµé »çÀÌ¿¡¸¸ »¬¼ÀÀ» ÇÒ ¼ö ÀÖ´Ù ¦¢ ¦¢ (ÀÌ °æ¿ì ¾î´À ÇÑ ÂÊÀ» Çü º¯È¯ÇÏ¸é »ç¿ëÇÒ ¼ö ÀÖ´Ù) */ ¦¢ ¦¢ ¦¢ ¦¢ ¦¢ ¦¢ ¦¢ ¦¦¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¥ ´ÙÀ½Àº Æ÷ÀÎÅÍ ¿¬»ê¿¡ °üÇÑ ÇÁ·Î±×·¥ÀÌ´Ù. main() { int i = 10, *ip = &i; int j, k; char c = 'D', *cp = &c; double *jp = (double *) 2000; *ip++ = ++i; ++*--ip; ++*cp++; *--cp = c + 3; jp += 5; j = jp - (double *) 80; k = (int)(jp - 80); printf("i = %d, j = %d, k = %d, c = %c\n",i,j,k,c); } ¦£¦¡¦¡¦¡¦¤ ¦¢ °á°ú ¦¢ ¦¦¦¡¦¡¦¡¦¥ --------------------------------------------------------------------------------- i = 12, j = 245, k = 1400, c = H ¿ì¼± *ip++ = ++iÀÇ °æ¿ì iÀÇ °ªÀ» 1 Áõ°¡½ÃÅ°°í(i = 11ÀÌ µÈ´Ù) À̸¦ *ip¿¡ ÇÒ´çÇÏ°í(*ip´Â iÀÌ ¹Ç·Î i = 11) ip°¡ sizeof(int) ¸¸Å­ Áõ°¡µÈ´Ù. ±× ´ÙÀ½ ++*--ip;¿¡¼­ --ip¸¦ ¸ÕÀú °è»êÇϹǷΠip´Â µµ·Î ¿ø·¡ÀÇ °ªÀÌ µÇ¸ç µû¶ó¼­ *ip´Â i°¡ µÇ°í À̸¦ 1 Áõ°¡ÇϹǷΠi = 12°¡ µÈ´Ù. ++*cp++´Â *cp ¿Í cp°¡ 1 Áõ°¡ÇϹǷÎ(sizeof(char)´Â 1ÀÌ´Ù) c´Â 'E'°¡ µÇ°í cp´Â 1Áõ°¡ÇÑ´Ù. ±× ´ÙÀ½ *--cp = c + 3¿¡¼­ c + 3Àº 'E' + 3ÀÌ µÇ¸ç *--cp¿¡¼­ --cp·Î ´Ù½Ã cp°¡ cÀÇ ÁÖ¼Ò¸¦ °¡Áö¹Ç·Î *--cp´Â c°¡ µÈ´Ù. µû¶ó¼­ c´Â 'E' + 3 = 'H'¸¦ °®°Ô µÈ´Ù. ±×¸®°í jp += 5¿¡¼­ jp°¡ 2000À» °ªÀ¸·Î °¡Áö¹Ç·Î jp = 2000 + sizeof(double) * 5°¡ µÇ¾î 2040 ÀÌ µÇ¸ç, ±× ´ÙÀ½ j = jp - (double *) 80¿¡¼­ 80ÀÌ ÁÖ¼Ò·Î Çü º¯È¯ µÇ¾úÀ¸¹Ç·Î Æ÷ÀÎÅÍ »çÀÌÀÇ »¬ ¼ÀÀÌ µÇ¾î (2040 - 80) / sizeof(double)ÀÌ µÇ¹Ç·Î j´Â 245°¡ µÈ´Ù. ¸¶Áö¸·À¸·Î k = (int)(jp - 80)ÀÇ °æ¿ì jp - 80¿¡¼­ 80ÀÌ ÁÖ¼Ò°¡ ¾Æ´Ñ Á¤¼öÀ̹ǷΠjp - 80 * sizeof(double)ÀÌ µÇ¾î 2040 - 80 * 8 = 1400ÀÌ µÇ¹Ç·Î k´Â 1400ÀÌ µÈ´Ù.