¡ºÇÁ·Î±×·¡¹Ö ¾ð¾î °­ÁÂ-C,C++,VC °­Á (go PROG)¡» 1587¹ø Á¦ ¸ñ:[°­ÁÂ] Æ÷ÀÎÅÍ ½ºÅ͵ð [2/8] -½Å°æÈ£ ¿Ã¸°ÀÌ:ÆÄÀÌ»ç¶û(½Å°æÈ£ ) 00/01/26 23:57 ÀÐÀ½:450 °ü·ÃÀÚ·á ¾øÀ½ ----------------------------------------------------------------------------- ¡º¹è¿òÅÍ-°­Á (go SSCS)¡» 27¹ø Á¦ ¸ñ:[°­ÁÂ] Æ÷ÀÎÅÍ ½ºÅ͵ð [2/8] -½Å°æÈ£ ¿Ã¸°ÀÌ:ÆÄÀÌ»ç¶û(½Å°æÈ£ ) 00/01/23 23:35 ÀÐÀ½: 3 °ü·ÃÀÚ·á ¾øÀ½ ----------------------------------------------------------------------------- ¦¬¦¬¦¬¦¬¦¬¦¬¦¬¦¬¦¬¦¬¦¬¦¬¦¬¦¬¦¬¦¬¦¬¦¬¦¬¦¬¦¬¦¬¦¬¦¬¦¬¦¬¦¬¦¬¦¬¦¬¦¬¦¬¦¬¦¬¦¬¦¬ ¡á 2. ¹è¿­°ú Æ÷ÀÎÅÍ ¡á ¦¬¦¬¦¬¦¬¦¬¦¬¦¬¦¬¦¬¦¬¦¬¦¬¦¬¦¬¦¬¦¬¦¬¦¬¦¬¦¬¦¬¦¬¦¬¦¬¦¬¦¬¦¬¦¬¦¬¦¬¦¬¦¬¦¬¦¬¦¬¦¬ ¢Ä C¿¡¼­ÀÇ ¹®ÀÚ¿­ C¿¡¼­ ¹®ÀÚ¿­Àº Æ÷ÀÎÅ͸¦ »ç¿ëÇؼ­ ±¸ÇöµÈ´Ù´Â °ÍÀº ´Ù ¾Æ½Ç°Ì´Ï´Ù. Á¤¸»·Î ±×·±Áö Çѹø »ìÆ캸µµ·Ï ÇÏÁö¿ä. ´ÙÀ½ ¹®ÀåÀ» º¸¼¼¿ä. char *sp = "Love"; ¦®¦¬¦¬¦³¦¬¦¬¦¬¦¬¦¬¦¬¦¬¦¬¦¬¦¬¦¬¦¬¦¬¦¬¦¬¦¬¦¬¦¬¦¬¦¬¦¬¦¬¦¬¦¬¦¬¦¬¦¬¦¬¦¬¦¬¦¬¦¯ ¦­ÁÖ¼Ò¦­ 41 42 43 44 45 46 5A 5B 5C 5D 5E ¦­ ¦­ ¦­ ¦³¦¬¦³¦¬¦³¦¬¦³¦¬¦³¦¬¦³¦¬¦³¦¬¦¬¦¬¦¬¦¬¦¬¦³¦¬¦¬¦¬¦¬¦¬¦¬¦¬¦³¦¬¦³ ¦­ ¦­ °ª ¦­ ¦­ ¦­L ¦­o ¦­v ¦­e ¦­\0¦­ ¡¦ ¦­42¦­00¦­00¦­00¦­ ¦­ ¦­ ¦­ ¦­ ¦µ¦¬¦µ¦¬¦µ¦¬¦µ¦¬¦µ¦¬¦µ¦¬¦µ¦¬¦¬¦¬¦¬¦¬¦¬¦µ¦¬¦¬¦¬¦¬¦¬¦¬¦¬¦µ¦¬¦µ ¦­ ¦­À̸§¦­ sp ¦­ ¦±¦¬¦¬¦µ¦¬¦¬¦¬¦¬¦¬¦¬¦¬¦¬¦¬¦¬¦¬¦¬¦¬¦¬¦¬¦¬¦¬¦¬¦¬¦¬¦¬¦¬¦¬¦¬¦¬¦¬¦¬¦¬¦¬¦¬¦¬¦° Á¦°¡ Ç×»ó Æ÷ÀÎÅ͸¦ ±× Æ÷ÀÎÅÍ°¡ °¡¸®Å°´Â ¸Þ¸ð¸® ¿µ¿ªº¸´Ù µÚ¿¡ ±×¸®´Âµ¥ ¹Ýµå½Ã ±×·±°Ç ¾Æ´Õ´Ï´Ù. Æ÷ÀÎÅÍ º¯¼öµµ ¿ª½Ã º¯¼öÀ̱⠶§¹®¿¡ ÄÄÆÄÀÏ·¯°¡ ¾Ë ¾Æ¼­ ºñ¾îÀÖ´Â °÷¿¡ ¸Þ¸ð¸®¸¦ ÇÒ´çÇÏ´Â °ÍÀÌÁö¿ä. À§ÀÇ ¿¹Á¦¸¦ º¸¸é ±× µ¿¾ÈÀÇ ¿¹Á¦¿Í´Â ´Ù¸£°Ô "Love"ÀÇ Ã¹ ºÎºÐ¿¡ µû·Î ÀÌ ¸§ÀÌ ºÙ¾îÀÖÁö ¾ÊÁö¿ä? ¹Ù·Î ±×·¸½À´Ï´Ù. C¿¡¼­´Â ¹®ÀÚ¿­ ÀÚü¿¡ À̸§À» ºÙÀÏ ¼ö´Â ¾ø´Â °ÅÁö¿ä. ±× Æ÷ÀÎÅ͸¦ ÅëÇؼ­¸¸ ÂüÁ¶°¡ °¡´ÉÇÑ °Ì´Ï´Ù. ´Ù½Ã ¸»¾¸µå ·Á¼­ C¿¡¼­ÀÇ ¹®ÀÚ¿­Àº Æ÷ÀÎÅÍ°¡ ÀüºÎ¶ó´Â ¾ê±é´Ï´Ù. ±×·¯´Ï±î ¹®ÀÚ¿­ÀÇ ±æÀÌ µµ ÀϹÝÀûÀÎ ¹æ¹ýÀ¸·Î´Â ¾Ë¾Æ³¾ ¼ö°¡ ¾øÁö¿ä. µû·Î ±æÀ̸¦ ÀúÀåÇÏ´Â °ø°£ÀÌ ¾øÀ¸´Ï±î¿ä. ±×·¡¼­ C¿¡¼­ »ç¿ëÇÏ´Â ¹æ¹ýÀÌ ¹Ù·Î ¹®ÀÚ¿­ ³¡¿¡ 0À̶ó´Â °ªÀ» ³Ö¾îÁÖ´Â °Í ÀÔ´Ï´Ù. ¿©±â¼­ 0À̶õ °ÍÀº Äڵ尪ÀÌÁö ¹®ÀڷΠǥÇöµÇ´Â '0'ÀÌ ¾Æ´Õ´Ï´Ù. µÑ ÀÌ ¾î¶»°Ô ´Ù¸¥°ÇÁö´Â ¾Æ½Ã°ÚÁö¿ä? (¹®ÀÚ '0'ÀÇ ÄÚµå´Â 0x30 ÀÔ´Ï´Ù, 10Áø¼ö ·Î´Â 48ÀÌÁö¿ä) °á±¹ ¹®ÀÚ¿­ Áß°£¿¡ 0À̶ó´Â Äڵ带 °¡Áö´Â ¹®ÀÚ´Â ³ÖÀ» ¼ö ¾ø°Ô µÇ°ÚÁö¿ä? ±×·¯³ª °ÆÁ¤ÇÒ °Í ¾ø½À´Ï´Ù. ÄÚµå 0Àº »ç¿ëµÇÁö ¾Ê´Â ¹®ÀÚÀ̱⠶§¹®ÀÌÁö¿ä. ±×·³ ÀÌ ¹®ÀÚ¿­À» ¾î¶»°Ô ´Ù·çÁö¿ä? puts(sp); ÀÌ·¸°ÔÇÏ¸é ¹®ÀÚ¿­À» Ãâ·ÂÇÏ´Â°Ô µÇÁö¿ä? ±×·±µ¥ ÀÌ»óÇÑ Á¡ÀÌ ÀÖÁö¿ä. ¿©Å ±îÁö´Â Æ÷ÀÎÅÍ°¡ °¡¸®Å°´Â ³»¿ëÀ» Ãâ·ÂÇÒ·Á¸é *¿¬»êÀÚ¸¦ ºÙ¿©¾ß Çß¾ú´Âµ¥ ¿© ±â¼­´Â ±×·¯Áú ¾Ê³×¿ä. ¿Ö ±×·²±î¿ä? ±×³É ´ç¿¬È÷ ±×·±°Å´Ù »ý°¢ÇϽóª¿ä? ^^ ±×·¸Áö´Â ¾ÊÁö¿ä. »ç½Ç»óÀº puts ÇÔ¼ö ¾È¿¡¼­ ÀÎÀÚ·Î ¹ÞÀº Æ÷ÀÎÅÍ¿¡ *¸¦ ºÙ ¿©¼­ ³»ºÎÀûÀ¸·Î ÇÑ ¹®ÀÚ¾¿ Ãâ·ÂÇϱ⠶§¹®ÀÌÁö¿ä. ¹®ÀÚ¿­À» ´Ù·ç´Â ÇÔ¼öµéÀÌ ³»ºÎÀûÀ¸·Î ¾î¶² °úÁ¤À» °ÅÄ¡´ÂÁö´Â Àá½Ã ÈÄ¿¡ ¾Ë¾Æº¸±â·Î ÇսôÙ. ¢Ä ¹®ÀÚ¿­°ú ¹è¿­ ¾Æ½Ã´Ù½ÃÇÇ ¹è¿­°ú Æ÷ÀÎÅÍ´Â ¸Å¿ì °¡±î¿î °ü°è ÀÔ´Ï´Ù. ±×·¯´Ï ´ç¿¬È÷ ¹è¿­ °ú ¹®ÀÚ¿­µµ ¹ÐÁ¢ÇÑ °ü°è¸¦ °¡Áö°í ÀÖ°ÚÁö¿ä. ¿ì¸®´Â ¹è¿­ÀÇ ÂüÁ¶ ¿¬»êÀÚÀÎ []¸¦ »ç¿ëÇؼ­ ¹®ÀÚ¿­¿¡µµ Á¢±Ù ÇÒ ¼ö ÀÖ¾ú½À´Ï´Ù. sp[0]Àº 'L'ÀÌ°í sp[1]Àº 'o'°ÚÁö¿ä. ÀÌ Á¤µµ´Â ¾Æ½Ã¸®¶ó ¹Ï°í¡¦ ¢Ä ¹®ÀÚ¿­ ÇÔ¼ö puts ÇÔ¼ö°¡ ¾î¶² ¹æ¹ýÀ¸·Î ±¸ÇöµÇ´ÂÁö º¼±î¿ä? ÀÏ´Ü strlen ÇÔ¼öºÎÅÍ º¸µµ ·Ï ÇսôÙ. int my_strlen(const char *ptr) { int len; for (len = 0; ptr[len] != '\0'; len++); return len; } for¹®ÀÇ ±¸¹®ÀÌ Á» ƯÀÌÇØ º¸À̱â´Â ÇÏÁö¸¸ ÀüÇô ´Ù¸¦°Ç ¾ø½À´Ï´Ù. const ´Â ¸ð¸¥´Ù¸é ´çÀå ½Å°æ¾²Áö ¾ÊÀ¸¼Åµµ µÇ°í(ÀÖÀ¸³ª ¸¶³ª¶ó°í ¾Ë°í °è¼¼¿ä), ½Ç Á¦·Î ±¸ÇöµÈ ºÎºÐÀÎ for¹®À» º¾½Ã´Ù. for¹®ÀÇ Çü½ÄÀº ´ÙÀ½°ú °°Áö¿ä. for (ÃʱⰪ; Áö¼ÓÁ¶°Ç; °ªº¯È­) Áö¼ÓÁ¶°ÇÀÌ ptr[len] != '\0'ÀÌÁö¿ä. ÈçÈ÷ for (i = 0; i < 3; i++)¡¦ ÀÌ·± ÇüÅ·θ¸ »ç¿ëÇØ ¿Í¼­ ÃʱⰪ°ú Áö¼ÓÁ¶°Ç, °ªº¯È­¿¡ »ç¿ëµÇ´Â º¯¼ö°¡ ¸ðµÎ µ¿ ÀÏÇØ¾ß ÇÑ´Ù°í »ý°¢ÇϽÇÁöµµ ¸ð¸£°Ú´Âµ¥, ±×·¸Áö ¾Ê½À´Ï´Ù. ¸ðµÎ ´Ù¸¥ º¯¼ö°¡ »ç¿ëµÇµµ µÇÁö¿ä. Áö¼ÓÁ¶°ÇÀ» º¸¸é, "ptrÀÇ len¹ø° ¿ä¼Ò°¡ '\0'ÀÌ ¾Æ´Ñ µ¿¾È"ÀÌ µË´Ï´Ù. ´Ù ½Ã¸»ÇØ ptrÀÇ len¹ø° ¿ä¼Ò°¡ '\0'À϶§ ³¡³ª°Ô µÇ´Â °ÍÀÌÁö¿ä. ±×¸²À» º¸´Â°Ô ÁÁ°Ú³×¿ä. ¦®¦¬¦¬¦³¦¬¦¬¦¬¦¬¦¬¦¬¦¬¦¬¦¬¦¬¦¬¦¬¦¬¦¬¦¬¦¬¦¬¦¬¦¬¦¬¦¬¦¬¦¬¦¬¦¬¦¬¦¬¦¬¦¬¦¬¦¬¦¯ ¦­ÁÖ¼Ò¦­ 41 42 43 44 45 46 5A 5B 5C 5D 5E ¦­ ¦­ ¦­ ¦³¦¬¦³¦¬¦³¦¬¦³¦¬¦³¦¬¦³¦¬¦³¦¬¦¬¦¬¦¬¦¬¦¬¦³¦¬¦¬¦¬¦¬¦¬¦¬¦¬¦³¦¬¦³ ¦­ ¦­ °ª ¦­ ¦­ ¦­L ¦­o ¦­v ¦­e ¦­\0¦­ ¡¦ ¦­42¦­00¦­00¦­00¦­ ¦­ ¦­ ¦­ ¦­ ¦µ¦¬¦µ¦¬¦µ¦¬¦µ¦¬¦µ¦¬¦µ¦¬¦µ¦¬¦¬¦¬¦¬¦¬¦¬¦µ¦¬¦¬¦¬¦¬¦¬¦¬¦¬¦µ¦¬¦µ ¦­ ¦­len ¦­ 0 1 2 3 4 ptr ¦­ ¦±¦¬¦¬¦µ¦¬¦¬¦¬¦¬¦¬¦¬¦¬¦¬¦¬¦¬¦¬¦¬¦¬¦¬¦¬¦¬¦¬¦¬¦¬¦¬¦¬¦¬¦¬¦¬¦¬¦¬¦¬¦¬¦¬¦¬¦¬¦° lenÀÌ 4À϶§ÀÇ ptr°ªÀÌ '\0'ÀÌ µÇÁö¿ä? ¹®ÀÚ¿­ÀÇ ±æÀÌ¿¡´Â '\0'ÀÌ Æ÷ÇÔµÇÁö ¾Ê±â ¶§¹®¿¡ ±×¶§ÀÇ len°ªÀÌ ¹Ù·Î ¹®ÀÚ¿­ ±æÀÌ°¡ µÇ´Â °ÍÀÌÁö¿ä. ±×·±µ¥ Çѹø º¸¼¼¿ä. my_strlen ÇÔ¼öµµ ºÐ¸í ¹®ÀÚ¿­À» ´Ù·ç´Â ÇÔ¼ö ÀÔ´Ï´Ù. ¹®ÀÚ¿­À» ´Ù·ç ´Â ÇÔ¼ö´Â ³»ºÎ¿¡¼­ ¾Ë¾Æ¼­ *¸¦ ºÙ¿©¼­ »ç¿ëÇÑ´Ù°í Çߴµ¥, ´«À» ¾Ä°í ã¾ÆºÁ µµ *¿¬»êÀÚ´Â º¸ÀÌÁú ¾ÊÁö¿ä? ³×. ¹Ù·Î ±×·¸½À´Ï´Ù. ¹Ù·Î À§¿¡¼­ ¸»¾¸µå¸° [] ¿¬»êÀÚ°¡ *¿¬»êÀÚ¸¦ ´ë½ÅÇÏ°í ÀÖ´Â °ÍÀÌÁö¿ä. []¿¬»êÀÚ¿Í *¿¬»êÀÚÀÇ °ü°è´Â Á¶±Ý ÈÄ¿¡ ´Ù·ç±â·Î ÇÏ°í puts ÇÔ¼ö¸¦ º¸µµ·Ï ÇÏÁö¿ä. void my_puts(const char *ptr) { int i, len = my_strlen(ptr); for (i = 0; i < len; i++) putch(ptr[i]); putch('\n'); } my_strlenÀÇ °á°ú °ªÀÌ 4À̴ϱî for ·çÇÁ´Â i°¡ 0À϶§ºÎÅÍ 3À϶§±îÁö ȸÀü À» ÇÏ°ÚÁö¿ä. ±×¸®°í ¿ª½Ã ¿©±â¿¡¼­µµ []¿¬»êÀÚ¸¦ »ç¿ëÇØ ÇØ´ç À§Ä¡ÀÇ ¹®ÀÚ¸¦ Àо putch(ÇÑ ¹®ÀÚ¸¦ Ãâ·ÂÇÏ´Â ÇÔ¼ö ÀÔ´Ï´Ù)·Î Ãâ·ÂÀ» ÇÕ´Ï´Ù. ÀÌÁ¦ ¿ì¸® °¡ ¹®ÀÚ¿­À» ´Ù·ç´Â ÇÔ¼ö¿¡ ¹®ÀÚ¿­À» ³Ñ°ÜÁÙ¶§ ¿Ö *¿¬»êÀÚ¸¦ »ç¿ëÇÏÁö ¾Ê¾Æµµ µÇ´ÂÁö ¾Æ½Ã°ÚÁö¿ä? ¢Ä ¹è¿­°ú Æ÷ÀÎÅÍ ¿©Å±îÁö´Â ¹®ÀÚ¿­¸¸À» ´Ù·ð½À´Ï´Ù. ¹®ÀÚ¿­À» ¹è¿­°ú ¶È°°ÀÌ »ç¿ëÀ» Çß¾úÁö ¿ä? ±×·±µ¥ ¹®ÀÚ¿­ÀÌ ÀϹÝÀûÀÎ ¹è¿­¿¡ Ãß°¡Çؼ­ °¡Áø ¼Ó¼ºÀÌ ÀÖ½À´Ï´Ù. ¹Ù·Î °¢ ¹®ÀÚÀÇ Å©±â°¡ 1¹ÙÀÌÆ®¶ó´Â °ÍÀÌÁö¿ä. ´Ù½Ã ¸»Çؼ­ ¹®ÀÚ¿­Àº °¢ ¿ä¼ÒÀÇ Å© ±â°¡ 1ÀÎ ¹è¿­À̶ó°í »ý°¢Çϼŵµ µÈ´Ù´Â °ÍÀÌÁö¿ä. ±×·³ ¹®ÀÚ¿­ÀÌ ¾Æ´Ñ Á¤¼ö Çü ¹è¿­À» º¸µµ·Ï ÇսôÙ. int ar[3] = { 1, 2, 3 }; int *ap = ar; ¦®¦¬¦¬¦³¦¬¦¬¦¬¦¬¦¬¦¬¦¬¦¬¦¬¦¬¦¬¦¬¦¬¦¬¦¬¦¬¦¬¦¬¦¬¦¬¦¬¦¬¦¬¦¬¦¬¦¬¦¬¦¬¦¬¦¬¦¬¦¯ ¦­ÁÖ¼Ò¦­ 41 42 43 44 45 46 5A 5B 5C 5D 5E ¦­ ¦­ ¦­ ¦³¦¬¦¬¦¬¦³¦¬¦¬¦¬¦³¦¬¦¬¦¬¦³¦¬¦¬¦¬¦¬¦¬¦¬¦³¦¬¦¬¦¬¦¬¦¬¦¬¦¬¦³¦¬¦³ ¦­ ¦­ °ª ¦­ ¦­01¦­00¦­02¦­00¦­03¦­00¦­ ¡¦ ¦­41¦­00¦­00¦­00¦­ ¦­ ¦­ ¦­ ¦­ ¦µ¦¬¦¬¦¬¦µ¦¬¦¬¦¬¦µ¦¬¦¬¦¬¦µ¦¬¦¬¦¬¦¬¦¬¦¬¦µ¦¬¦¬¦¬¦¬¦¬¦¬¦¬¦µ¦¬¦µ ¦­ ¦­À̸§¦­ ar ap ¦­ ¦±¦¬¦¬¦µ¦¬¦¬¦¬¦¬¦¬¦¬¦¬¦¬¦¬¦¬¦¬¦¬¦¬¦¬¦¬¦¬¦¬¦¬¦¬¦¬¦¬¦¬¦¬¦¬¦¬¦¬¦¬¦¬¦¬¦¬¦¬¦° ¾Æ½Ã´Ù½ÃÇÇ int ÀÚ·áÇüÀÇ Å©±â´Â 2¹ÙÀÌÆ®ÀÌÁö¿ä. ±×¸²À» º¸½Ã¸é arÀÇ °¢ ¿ä ¼Ò°¡ °¢°¢ 2¹ÙÀÌÆ®¾¿ Â÷ÁöÇÏ°í ÀÖ´Â °ÍÀ» ¾Ë ¼ö ÀÖ½À´Ï´Ù. ¿ª½Ã °ªÀÇ ¼ø¼­´Â ¹ÙÀÌÆ® ´ÜÀ§·Î ¹Ù²¸¼­ µé¾î°¡ ÀÖÁö¿ä? ±×·³ ÀÌ ¹è¿­À» ´ëÇ¥ÇÏ´Â arÀº µµ´ëü ¹«¾ùÀϱî¿ä? Æ÷ÀÎÅÍÀϱî¿ä? ¾Æ´Õ´Ï´Ù. ¹®ÀÚ¿­ ¹è¿­°ú ´Ù¸£°Ô ÀÌ °ªÀº Æ÷ÀÎÅÍ °¡ ¾Æ´Õ´Ï´Ù. ÀÌ°ÍÀÌ ¹è¿­°ú Æ÷ÀÎÅÍÀÇ Â÷ÀÌÀä. ÀÌ arÀº ¹Ù·Î À̸§À» °¡Áø Æ÷ÀÎÅÍ »ó¼ö ÀÔ´Ï´Ù. Æ÷ÀÎÅÍ º¯¼ö¿Í ´Ù ¶È°°Áö¸¸ ´ÜÁö º¯¼ö°¡ ¾Æ´Ï¹Ç·Î ¸Þ¸ð ¸®¿¡ Á¸ÀçÇÏÁö´Â ¾Ê´Â´Ù´Â °ÍÀÌÁö¿ä. ´ÙÀ½ ¿¹Á¦¸¦ ½ÇÇàÇØ º¸¼¼¿ä. ¦®¦¬¦¬¦¬¦¬¦¬¦¬¦¬¦¬¦¬¦¬¦¬¦¬¦¬¦¬¦¬¦¬¦¬¦¬¦¬¦¬¦¬¦¬¦¬¦¬¦¬¦¬¦¬¦¬¦¬¦¬¦¬¦¬¦¬¦¬¦¯ ¦­ void main(void) { ¦­ ¦­ int ar[3] = { 1, 2, 3 }; ¦­ ¦­ int *ap = ar; ¦­ ¦­ ¦­ ¦­ printf("%p %p\n", &ar, ar); ¦­ ¦­ printf("%p %p\n", &ap, ap); ¦­ ¦­ } ¦­ ¦²¦¬¦¬¦¬¦¬¦¬¦¬¦¬¦¬¦¬¦¬¦¬¦¬¦¬¦¬¦¬¦¬¦¬¦¬¦¬¦¬¦¬¦¬¦¬¦¬¦¬¦¬¦¬¦¬¦¬¦¬¦¬¦¬¦¬¦¬¦´ ¦­ <°á°ú> ¦­ ¦­ 0EF1:0FFA 0EF1:0FFA ¦­ ¦­ 0EF1:0FF6 0EF1:0FFA ¦­ ¦±¦¬¦¬¦¬¦¬¦¬¦¬¦¬¦¬¦¬¦¬¦¬¦¬¦¬¦¬¦¬¦¬¦¬¦¬¦¬¦¬¦¬¦¬¦¬¦¬¦¬¦¬¦¬¦¬¦¬¦¬¦¬¦¬¦¬¦¬¦° Æ÷ÀÎÅÍ º¯¼ö ap´Â ±× °ªÀÎ ap¿Í ±× ÁÖ¼ÒÀÎ &ap°¡ ´Ù¸£Áö¿ä. ´ç¿¬È÷ ¸Þ¸ð¸® ¿¡ Á¸ÀçÇϴϱî¿ä. ±×·±µ¥ À§ÀÇ arÀ» º¸¼¼¿ä. ar¿Í &arÀÌ °°½À´Ï´Ù. (¹°·Ð ¼ý ÀÚ´Â ½ÇÇàÇÒ ¶§ ¸¶´Ù ´Ù¸¦ ¼ö ÀÖ½À´Ï´Ù¸¸ °°°í ´Ù¸¥ °ÍÀº È®ÀÎÀÌ °¡´ÉÇÕ´Ï´Ù) arÀº µû·Î ¸Þ¸ð¸®¿¡ Á¸ÀçÇÏ´Â º¯¼ö°¡ ¾Æ´Ñ ÄÄÆÄÀÏ·¯°¡ ³»ºÎ¿¡¼­ ´Ù·ç´Â »ó¼ö À̱⠶§¹®¿¡ ÁÖ¼Ò°¡ ¾ø´Â °ÍÀÌÁö¿ä. ¿ª½Ã ½Å±âÇÕ´Ï´Ù. ^^ (Àúµµ ¸»·Î¸¸ Çß¾ú Áö ½ÇÁ¦·Î È®ÀÎÇØ º»°Ç óÀ½À̳׿ä) »ç½Ç»ó ¾²ÀÓ»õ¿¡ ´ëÇؼ­´Â ap¿Í arÀº ¿Ï ÀüÈ÷ µ¿ÀÏÇÏÁö¸¸ ³»ºÎÀûÀ¸·Î´Â ÀÌ·± Â÷ÀÌÁ¡ÀÌ ÀÖ¾ú³×¿ä. long al[2] = { 1L, 2L }; longÀº 4¹ÙÀÌÆ®À̹ǷΠÀ̶§ÀÇ ¸Þ¸ð¸®´Â ´ÙÀ½°ú °°°ÚÁö¿ä. ¦®¦¬¦¬¦³¦¬¦¬¦¬¦¬¦¬¦¬¦¬¦¬¦¬¦¬¦¬¦¬¦¬¦¬¦¬¦¬¦¬¦¬¦¬¦¬¦¬¦¬¦¬¦¬¦¬¦¬¦¬¦¬¦¬¦¬¦¬¦¯ ¦­ÁÖ¼Ò¦­ 41 42 43 44 45 46 47 48 ¦­ ¦­ ¦­ ¦³¦¬¦¬¦¬¦¬¦¬¦¬¦¬¦³¦¬¦¬¦¬¦¬¦¬¦¬¦¬¦³¦¬¦¬¦¬¦¬¦¬¦¬¦¬¦¬¦¬¦¬¦¬¦¬¦¬ ¦­ ¦­ °ª ¦­ ¦­01¦­00¦­00¦­00¦­02¦­00¦­00¦­00¦­ ¡¦ ¦­ ¦­ ¦­ ¦µ¦¬¦¬¦¬¦¬¦¬¦¬¦¬¦µ¦¬¦¬¦¬¦¬¦¬¦¬¦¬¦µ¦¬¦¬¦¬¦¬¦¬¦¬¦¬¦¬¦¬¦¬¦¬¦¬¦¬ ¦­ ¦­À̸§¦­ al ¦­ ¦±¦¬¦¬¦µ¦¬¦¬¦¬¦¬¦¬¦¬¦¬¦¬¦¬¦¬¦¬¦¬¦¬¦¬¦¬¦¬¦¬¦¬¦¬¦¬¦¬¦¬¦¬¦¬¦¬¦¬¦¬¦¬¦¬¦¬¦¬¦° ¢Ä ¹è¿­À» ÀÎÀÚ·Î »ç¿ëÇϱ⠹迭 »ó¼ö´Â Æ÷ÀÎÅÍ »ó¼ö¿Í ´Þ¸® Å©±â¸¦ °®°í ÀÖ´Ù°í ÇßÁö¿ä. ±×·±µ¥ ÇÔ¼ö ·Î ¹è¿­À» Àü´ÞÇϱâ À§Çؼ­´Â Æ÷ÀÎÅÍ º¯¼ö¸¦ »ç¿ëÇÒ ¼ö ¹Û¿¡ ¾ø½À´Ï´Ù. ´ÙÀ½ °ú °°ÀÌ ¸»ÀÌÁö¿ä. (°ªÀ» ¹Þ´Â ÇÔ¼ö°¡ ±×°ÍÀÌ ¹è¿­ÀÎÁö ¾Æ´ÑÁö ±¸ºÐÇÒ ¹æ¹ýÀÌ ¾ø´Ù´Â ¾ê±âµµ µÇÁö¿ä. ¹è¿­À» ³Ñ°ÜÁÙ ¼ö´Â ¾øÀ¸´Ï±î¡¦) void sort(int *ia); ±×·¸´Ù¸é ÀÌ ÇÔ¼ö¿¡¼­´Â ia°¡ °¡¸®Å°´Â ¹è¿­ÀÇ Å©±â°¡ ¾ó¸¶ÀÎÁö ¾Ë ¼ö ÀÖÀ» ±î¿ä? Æ÷ÀÎÅ͸¸À¸·Î´Â ÀüÇô ¾Ë ¹æµµ°¡ ¾ø½À´Ï´Ù. ±×·¡¼­ µû·Î ¹è¿­ÀÇ Å©±â°¡ ¾ó¸¶ÀÎÁö¸¦ ³Ñ°ÜÁÖ¾î¾ß ÇÏÁö¿ä. ¶Ç´Â ¹è¿­ÀÇ ³¡À» °¨ÁöÇÒ ¼ö ÀÖµµ·Ï ¹®ÀÚ¿­À» »ç¿ëÇÏ´Â °Íó·³ ³¡¿¡ ƯÁ¤ÇÑ °ªÀ» ³Ö¾îÁÖ´øÁö¿ä. ±×·±µ¥ ÀÌ °æ¿ì ¿ª½Ã ±× Ư Á¤°ªÀº ¹è¿­ Áß°£¿¡´Â »ç¿ëÇÒ ¼ö°¡ ¾ø±â ¶§¹®¿¡ Á¤¼öÇüÀ» ´Ù·ç´Â ÇÔ¼ö¶ó¸é ¹® Á¦°¡ µÉ ¼ö ÀÖ°ÚÁö¿ä. ¸¸¾à ¾ç¼ö¸¸À» ´Ù·ç´Â ÇÔ¼ö¶ó¸é ¹è¿­ÀÇ ¸Ç ³¡¿¡ -1À» ³Ö¾îÁشٰųª Çؼ­ ±¸ºÐÇÒ ¼öµµ ÀÖÀ» °Ì´Ï´Ù. void sort(int *ia) { int n = 0; while (ia[n] != -1) { n++; } } void main(void) { int a[6] = { 1, 2, 3, 4, 5, -1 }; sort(a); } ÀÌ·¸°Ô ¸»ÀÌÁö¿ä. ÇÏÁö¸¸ °¹¼öµµ ÇÔ²² ³Ñ°ÜÁÖ´Â °ÍÀÌ ÀϹÝÀû ÀÔ´Ï´Ù. ¢Ä Æ÷ÀÎÅÍ ¿¬»ê À§¿¡¼­ []¿¬»êÀÚ´Â *¿¬»êÀÚÀÇ ±â´ÉÀ» ´ë½ÅÇÒ ¼ö ÀÖ´Ù°í Çß½À´Ï´Ù. []¿¬»êÀÚ ¿Í *¿¬»êÀÚÀÇ °ü°è¸¦ ¾Ë¾Æº¸µµ·Ï ÇÏÁö¿ä. Á¶±Ý ¾î·Á¿î ³»¿ëÀÌÁö¸¸ õõÈ÷ Àß »ý°¢ÇØ º¸½Ã¸é ÃæºÐÈ÷ ¾Æ½Ç ¼ö ÀÖÀ» °Ì´Ï´Ù. al[1]À̶ó°í ÇßÀ» ¶§ ½ÇÁ¦·Î Á¢±ÙÇÑ ¸Þ¸ð¸®ÀÇ ¹øÁö°¡ ¾î¶»°Ô µÇ³ª¿ä? ¹Ù·Î 45¹øÀÌ°ÚÁö¿ä? ±×·¯¸é ÀÌ°É []¿¬»êÀÚ°¡ ¾Æ´Ñ *¿¬»êÀÚ·Î Á¢±ÙÇÒ·Á¸é ¾î¶»°Ô ÇØ ¾ß ÇÒ±î¿ä? ¾Æ½Ã´Ù½ÃÇÇ alÀÇ °ªÀº 41ÀÌÁö¿ä. »ý°¢ÇØ º¾½Ã´Ù. alÀÌ 41ÀÌ´Ï±î °Å±â¿¡ 4¸¦ ´õÇÑ °ª¿¡ *¸¦ ºÙÀÌ¸é µÇÁö ¾ÊÀ»±î¿ä? ´ÙÀ½°ú °° ÀÌ ¸»ÀÔ´Ï´Ù. *(al + 4) À̶§ *¿¬»êÀÚ´Â + ¿¬»êÀÚ º¸´Ù ¼øÀ§°¡ ³ô±â ¶§¹®¿¡ ¹Ýµå½Ã °ýÈ£¸¦ ÇØ ÁÖ¾î ¾ß ÇÕ´Ï´Ù. Çѹø ´ÙÀ½ ÇÁ·Î±×·¥À» ½ÇÇàÇØ º¸¼¼¿ä. ¦®¦¬¦¬¦¬¦¬¦¬¦¬¦¬¦¬¦¬¦¬¦¬¦¬¦¬¦¬¦¬¦¬¦¬¦¬¦¬¦¬¦¬¦¬¦¬¦¬¦¬¦¬¦¬¦¬¦¬¦¬¦¬¦¬¦¬¦¬¦¯ ¦­ void main(void) { ¦­ ¦­ long al[2] = { 1L, 2L }; ¦­ ¦­ printf("%ld %ld", *al, *(al + 4)); ¦­ ¦­ } ¦­ ¦±¦¬¦¬¦¬¦¬¦¬¦¬¦¬¦¬¦¬¦¬¦¬¦¬¦¬¦¬¦¬¦¬¦¬¦¬¦¬¦¬¦¬¦¬¦¬¦¬¦¬¦¬¦¬¦¬¦¬¦¬¦¬¦¬¦¬¦¬¦° ¾î¶§¿ä? °á°ú°¡ Á¦´ë·Î ³ª¿À³ª¿ä? ¾Æ´ÏÁö¿ä? Á¦´ë·Î ³ª¿Ô´Ù¸é ¿ì¿¬È÷ ±×·± °Ì´Ï´Ù. ±×·³ ¿Ö Ʋ¸±±î¿ä? ¸Â´Â °Í °°Àºµ¥¡¦ ¿ì¸®°¡ *¿¬»êÀÚ¸¦ »ç¿ëÇÒ ¶§ ±× Æ÷ÀÎÅÍÀÇ Å¸ÀÔ ¸¸Å­ÀÇ °ªÀ» Àоî¿Â´Ù°í Çß Áö¿ä? ÀÌ °æ¿ì´Â long *ŸÀÔÀ̶ó°í º¸¸é µÇ°ÚÁö¿ä. ±×·¡¼­ *al ÇßÀ»¶§µµ 41¹ø ÁÖ¼ÒºÎÅÍ 4¹ÙÀÌÆ®¸¦ Àо 1ÀÌ Ãâ·ÂÀÌ µÇ¾úÁö¿ä. ±×·±µ¥ ÀÌ Å¸ÀÔÀÇ Å©±â´Â Æ÷ÀÎÅÍ¿¡ µ¡¼ÀÀ̳ª »¬¼ÀÀ» ÇÒ¶§µµ Àû¿ëÀÌ µË´Ï´Ù. ±×·¯´Ï±î Æ÷ÀÎÅÍ°¡ longÇü Æ÷ÀÎÅÍÀÎ °æ¿ì´Â ±× Æ÷ÀÎÅÍ¿¡ 1À» ´õÇصµ ½ÇÁ¦·Î´Â ±× Æ÷ÀÎÅÍ Å¸ÀÔÀÇ Å©±âÀÎ 4°¡ ´õÇØÁø´Ù´Â °ÍÀÌÁö¿ä. ¹°·Ð 2¸¦ ´õÇϸé 8ÀÌ ´õÇØÁö°í¿ä. ±×·¡¼­ À§ÀÇ ¿¹Á¦ÀÇ °æ¿ì *(al + 4)°¡ ¾Æ´Ñ *(al + 1)À̶ó°í ÇØ¾ß 2¶ó´Â °á °ú°¡ ³ª¿Â´Ù´Â °Ì´Ï´Ù. ÀÌÁ¦ Á» ¾Æ½Ã°ÚÁö¿ä? ±×¸®°í »ç½Ç ÀÌ°Ô ÈξÀ ½±Áö¿ä. al[0] = *(al + 0) = *al al[1] = *(al + 1) al[2] = *(al + 2) ÀÌ·¸°Ô µÈ´Ù´Â °Ì´Ï´Ù. ±× Æ÷ÀÎÅÍ Å¸ÀÔÀÇ Å©±â¿¡ °ü°è¾øÀÌ µ¿ÀÏÇÑ °á°ú¸¦ ¾òÀ» ¼ö ÀÖ°ÚÁö¿ä? ¾óÇÍ º¸¸é ¾î·Á¿î°Í °°±âµµ ÇÏÁö¸¸ ±×³ª¸¶ C°¡ ÇÁ·Î±×·¡¸Ó ¸¦ Á¶±Ý ¹è·ÁÇß´Ù°í »ý°¢µÇÁö ¾ÊÀ¸½Ã³ª¿ä? ÀÌ·¸Áö ¾Ê´Ù¸é Æ÷ÀÎÅ͸¦ ÅëÇØ ¹è¿­ À» ÂüÁ¶ÇÒ ¶§ ±× ¹è¿­ Æ÷ÀÎÅÍ Å¸ÀÔÀÇ Å©±â¸¦ ÀÏÀÏÈ÷ °è»êÇØ¾ß ÇÒÅ״ϱî¿ä. ±×¸®°í ÇÑ °¡Áö ´õ. C´Â []¿¬»êÀÚ¸¦ ³»ºÎÀûÀ¸·Î´Â À§Ã³·³ *() ¿¬»êÀÚ·Î ¹Ù²ã¼­ »ç¿ëÇÑ´Ù´Â °ÍÀÔ ´Ï´Ù. µÎ ÄÚµå´Â ¿ÏÀüÈ÷ µ¿ÀÏÇÏ°Ô µÇ´Â °ÍÀÌÁö¿ä. ¢Ä ÀÌ·±°Íµµ °¡´É! À̹ø¿¡´Â ¾ÆÁÖ ½Å±âÇÑ Äڵ带 ¸¹ÀÌ º¼ ¼ö ÀÖÀ» °Ì´Ï´Ù. ´ÙÀ½À» º¸¼¼¿ä. int pi[5] = { 1, 2, 3, 4, 5 }; ¦®¦¬¦¬¦³¦¬¦¬¦¬¦¬¦¬¦¬¦¬¦¬¦¬¦¬¦¬¦¬¦¬¦¬¦¬¦¬¦¬¦¬¦¬¦¬¦¬¦¬¦¬¦¬¦¬¦¬¦¬¦¬¦¬¦¬¦¬¦¯ ¦­ÁÖ¼Ò¦­ 41 42 43 44 45 46 47 48 49 4A ¦­ ¦­ ¦­ ¦³¦¬¦¬¦¬¦³¦¬¦¬¦¬¦³¦¬¦¬¦¬¦³¦¬¦¬¦¬¦³¦¬¦¬¦¬¦³¦¬¦¬¦¬¦¬¦¬¦¬¦¬¦¬¦¬ ¦­ ¦­ °ª ¦­ ¦­01¦­00¦­02¦­00¦­03¦­00¦­04¦­00¦­05¦­00¦­ ¡¦ ¦­ ¦­ ¦­ ¦µ¦¬¦¬¦¬¦µ¦¬¦¬¦¬¦µ¦¬¦¬¦¬¦µ¦¬¦¬¦¬¦µ¦¬¦¬¦¬¦µ¦¬¦¬¦¬¦¬¦¬¦¬¦¬¦¬¦¬ ¦­ ¦­À̸§¦­ pi ¦­ ¦±¦¬¦¬¦µ¦¬¦¬¦¬¦¬¦¬¦¬¦¬¦¬¦¬¦¬¦¬¦¬¦¬¦¬¦¬¦¬¦¬¦¬¦¬¦¬¦¬¦¬¦¬¦¬¦¬¦¬¦¬¦¬¦¬¦¬¦¬¦° pi[3]Àº *(pi + 3)°ú °°´Ù°í ÇßÁö¿ä? À§ ±×¸²°ú °°ÀÌ ÀúÀåµÇ¾î ÀÖ´Ù°í ÇÑ´Ù ¸é pi + 3Àº 47ÀÌ µÉ °Ì´Ï´Ù. ±×·¸´Ù¸é 3 + pi´Â ¹»±î¿ä? ¿ª½Ã 47ÀÌÁö¿ä. ÀÌ °É []¿¬»êÀÚ·Î ¹Ù²Ù¸é ¾î¶»°Ô µÇÁö¿ä? ³×. ±×·¸½À´Ï´Ù. 3[pi]Áö¿ä. °á±¹ ´ÙÀ½ÀÇ ³× °¡Áö´Â ¸ðµÎ µ¿ÀÏÇÕ´Ï´Ù. pi[3] = 3[pi] = *(pi + 3) = *(3 + pi) ¶Ç ÇÑ°¡Áö À̹ø¿¡´Â ¹®ÀÚ¿­ »ó¼ö¸¦ Çѹø º¾½Ã´Ù. printf("%c", "ABC"[1]); ÀÌ °á°ú´Â ¾î¶»°Ô µÉ±î¿ä? ³×. ¹®ÀÚ¿­ "ABC"ÀÇ 1¹ø° ¿ä¼ÒÀÎ B°¡ Ãâ·ÂµÇ°Ú Áö¿ä. ´Ù¸¥ »ó¼ö¿Í ´Ù¸£°Ô ¹®ÀÚ¿­ »ó¼ö´Â ¸Þ¸ð¸®¿¡ Àӽ󪸶 ÀúÀåÀÌ µË´Ï´Ù. ¦®¦¬¦¬¦¬¦¬¦¬¦¬¦¬¦¬¦¬¦¬¦¬¦¬¦¬¦¬¦¬¦¬¦¬¦¬¦¬¦¬¦¬¦¬¦¬¦¬¦¬¦¬¦¬¦¬¦¬¦¬¦¬¦¬¦¬¦¬¦¯ ¦­ void main(void) { ¦­ ¦­ printf("%p %p", "DEF", 5); ¦­ ¦­ } ¦­ ¦±¦¬¦¬¦¬¦¬¦¬¦¬¦¬¦¬¦¬¦¬¦¬¦¬¦¬¦¬¦¬¦¬¦¬¦¬¦¬¦¬¦¬¦¬¦¬¦¬¦¬¦¬¦¬¦¬¦¬¦¬¦¬¦¬¦¬¦¬¦° À§ÀÇ °á°ú´Â ¾î¶»°Ô ³ª¿À³ª¿ä? ù¹ø° %p¿¡¼­´Â ¹®ÀÚ¿­ "DEF"°¡ ÀúÀåµÈ ¸Þ ¸ð¸®ÀÇ Æ÷ÀÎÅÍ°¡ ³ª¿ÀÁö¿ä. ±×·¯³ª 5´Â ¹®ÀÚ¿­ »ó¼ö°¡ ¾Æ´Ï±â ¶§¹®¿¡ ±× °ªÀ» Á÷Á¢ Æ÷ÀÎÅÍ·Î º¸°í 0000:0005¸¦ Ãâ·ÂÇÏ°Ô µÇ´Â °ÍÀÌÁö¿ä. ±×·¸±â ¶§¹®¿¡ ¹® ÀÚ¿­ »ó¼ö¿¡ ÇÑÇؼ­ »ó¼ö·Îµµ Á÷Á¢ Æ÷ÀÎÅÍ ¿¬»êÀ» ÇàÇÒ ¼ö ÀÖ´Â °Ì´Ï´Ù. ÇÑ°¡ Áö ´õ º¹ÀâÇÑ °ÍÀ» º¼±î¿ä. printf("%c", 2["ABCDEFGH" + 3]); ³Ê¹« º¹ÀâÇÑ°¡¿ä? ^^ ÇÏÁö¸¸ º°°Í ¾Æ´Õ´Ï´Ù. Â÷±ÙÈ÷ »ìÆ캸µµ·Ï ÇÏÁö¿ä. À§ ÀÇ ¿¬»êÀº *(2 + "ABCDEFGH" + 3)°ú ¿ÏÀüÈ÷ °°Àº ÄÚµå°ÚÁö¿ä. ÀÌÁ¦ Á» ¾Ë¾Æº¸ ½Ã°ÚÁö¿ä? *("ABCDEFGH" + 5) = "ABCDEFGH"[5]¿Í ¿ÏÀüÈ÷ µ¿ÀÏÇÑ °ÍÀÔ´Ï´Ù. °á±¹ °á°ú´Â F°¡ µÇ°ÚÁö¿ä. ¾î¶§¿ä? º°·Î ¾È ¾î·ÆÁö¿ä? ±×¸®°í ¹°·Ð Æ÷ÀÎÅÍ ¿¬»êÀº µ¡¼À¸¸ °¡´ÉÇÑ °ÍÀÌ ¾Æ´Õ´Ï´Ù. »¬¼À, °ö¼À, ½É Áö¾î ³ª´°¼Àµµ °¡´ÉÇÏÁö¿ä. ¿Ö³Ä±¸¿ä? Æ÷ÀÎÅͶõ °Íµµ ±×³É ¼ýÀÚÀ̱⠶§¹®ÀÌÁö ¿ä. ±×·¸Áö¸¸ °ö¼À°ú ³ª´°¼ÀÀº ¾µ ÀÏÀÌ ¾ø°ÚÁö¿ä. ¾µ¼öµµ ¾ø°í¡¦ µ¡¼À°ú »¬¼À Àº ¿ì¸®°¡ °ªÀ» ¾Ë°í ÀÖ´Â ÀÏÁ¤ÇÑ ¿¬¼Ó ¸Þ¸ð¸®¿¡ ´ëÇØ ¾µ ¼ö ÀÖ±ä ÇÏÁö¸¸, °ö ¼À°ú ³ª´°¼ÀÀ» ÅëÇÑ ¸Þ¸ð¸® Á¢±ÙÀ̶ó¸é ¿ì¸®°¡ ÀüÇô ¸ð¸£´Â °ªÀÌÁö¿ä. »¬¼Àµµ Çѹø º¸µµ·Ï ÇÏÁö¿ä. printf("%c", 2["ABCDEFGH" - 1]); °á°ú´Â B°¡ ³ª¿À°ÚÁö¿ä. ÇÑ °¡Áö ¿¹Á¦¸¦ ´õ º¾½Ã´Ù. ¦®¦¬¦¬¦¬¦¬¦¬¦¬¦¬¦¬¦¬¦¬¦¬¦¬¦¬¦¬¦¬¦¬¦¬¦¬¦¬¦¬¦¬¦¬¦¬¦¬¦¬¦¬¦¬¦¬¦¬¦¬¦¬¦¬¦¬¦¬¦¯ ¦­ #include ¦­ ¦­ ¦­ ¦­ void main(void) { ¦­ ¦­ int ia[5] = { 1, 2, 3, 4, 5 }; ¦­ ¦­ int k = 2; ¦­ ¦­ ¦­ ¦­ printf("%d", (k + 1)[ia - 3]); ¦­ ¦­ } ¦­ ¦±¦¬¦¬¦¬¦¬¦¬¦¬¦¬¦¬¦¬¦¬¦¬¦¬¦¬¦¬¦¬¦¬¦¬¦¬¦¬¦¬¦¬¦¬¦¬¦¬¦¬¦¬¦¬¦¬¦¬¦¬¦¬¦¬¦¬¦¬¦° °á°ú´Â 1ÀÌ°ÚÁö¿ä. ¿ÖÀÎÁö´Â 1ºÐ¸¸ »ý°¢ÇØ º¸¸é ¾Ë ¼ö ÀÖÀ»²¬¿ä? ^^; À̹ø¿¡´Â ¹®ÀÚ¿­ÀÇ ÀϺθ¸ Ãâ·ÂÇÏ´Â ¹æ¹ýÀ» »ý°¢ÇØ º¸µµ·Ï ÇսôÙ. ¹®ÀÚ¿­ Àº ÀϹÝÀûÀ¸·Î puts·Î Ãâ·ÂÇÏÁö¿ä. ÀÌ ÇÔ¼ö¸¦ ±×´ë·Î ÀÌ¿ëÇսôÙ. char *ps = "ABCDEFG"; puts ÇÔ¼ö´Â Æ÷ÀÎÅ͸¦ ÀÎÀÚ·Î ¹Þ½À´Ï´Ù. ±×ÃÝ? ±×·¸´Ù¸é "DEFG"¸¸ Ãâ·ÂÇÒ·Á °í Çϸé DÀÇ Æ÷ÀÎÅ͸¦ ³Ñ°ÜÁÖ¸é µÇ°ÚÁö¿ä. ´ÙÀ½°ú °°ÀÌ ¸»ÀÔ´Ï´Ù. puts(&ps[3]); ÀÌÇØ µÇ½ÃÁÒ? &º¸´Ù´Â []°¡ ¿ì¼±¼øÀ§°¡ À§À̹ǷΠ°ýÈ£¸¦ ¾È ºÙ¿©µµ µË´Ï´Ù. ¢Ä Áõ°¡ ¿¬»êÀÚ¿Í °¨¼Ò ¿¬»êÀÚ, ±×¸®°í ¿¬»êÀÚ ÃÖÁ¾ Á¤¸® ¿ì¼± ´ÙÀ½ ¿¹Á¦¸¦ º¾½Ã´Ù. int pi[5] = { 2, 5, 1, 3, 4 }; printf("%d", *pi + 1); printf("%d", *(pi + 1)); °á°ú°¡ ¾î¶»°Ô ³ª¿À³ª¿ä? ³×. 3°ú 5°¡ ³ª¿ÀÁö¿ä. µÎ °á°ú´Â ÀüÇô ´Ù¸¥ °Ì´Ï ´Ù. (Àü¿¡ *°¡ + º¸´Ù ¿ì¼±¼øÀ§°¡ ³ô´Ù°í Çß¾úÁö¿ä) ù¹ø°ÀÇ °æ¿ì´Â *pi, Áï 2¿¡ 1À» ´õÇØ 3ÀÌ µÈ °ÍÀÌ°í¿ä. µÎ¹ø°´Â ¾Æ½Ã´Ù½ÃÇÇ pi + 1ÀÇ °ªÀ» Àоî¿Â °ÍÀÌ°ÚÁö¿ä. ´ÙÀ½À¸·Î´Â Áõ°¡ ¿¬»êÀÚ¿Í °¨¼Ò ¿¬»êÀÚ¿¡ ´ëÇØ ¾Ë¾Æ º¾½Ã´Ù. int ia[5] = { 1, 2, 3, 4, 5 }; int *pi = ia; ¾Æ½Ã´Ù½ÃÇÇ Áõ°¡ ¿¬»êÀÚ¿Í °¨¼Ò ¿¬»êÀÚ´Â ±× °ª ÀÚü¸¦ ¹Ù²Ù±â ¶§¹®¿¡ »ó¼ö ¿¡´Â »ç¿ëÀÌ ºÒ°¡´É ÇÕ´Ï´Ù. ¹è¿­¸íÀÎ ia´Â »ó¼öÀ̱⠶§¹®¿¡ ia++, ++ia °°Àº ¹æ¹ýÀ¸·Î´Â »ç¿ëÀÌ ºÒ°¡´ÉÇÏÁö¿ä. (ÄÄÆÄÀϽà ¿¡·¯°¡ ¹ß»ýÇÕ´Ï´Ù) ¦®¦¬¦¬¦¬¦¬¦¬¦¬¦¬¦¬¦¬¦¬¦¬¦¬¦¬¦¬¦¬¦¬¦¬¦¬¦¬¦¬¦¬¦¬¦¬¦¬¦¬¦¬¦¬¦¬¦¬¦¬¦¬¦¬¦¬¦¬¦¯ ¦­ void main(void) { ¦­ ¦­ int ia[5] = { 1, 3, 5, 7, 9 }; ¦­ ¦­ int *pi = ia; ¦­ ¦­ ¦­ ¦­ int a, b, c; ¦­ ¦­ a = *pi++; ¦­ ¦­ b = *pi; ¦­ ¦­ c = *++pi; ¦­ ¦­ ¦­ ¦­ printf("%d %d %d", a, b, c); ¦­ ¦­ } ¦­ ¦±¦¬¦¬¦¬¦¬¦¬¦¬¦¬¦¬¦¬¦¬¦¬¦¬¦¬¦¬¦¬¦¬¦¬¦¬¦¬¦¬¦¬¦¬¦¬¦¬¦¬¦¬¦¬¦¬¦¬¦¬¦¬¦¬¦¬¦¬¦° ÀÌó·³ a, b, c¿¡ ¹Ì¸® °ªÀ» ´ëÀÔÇÏ´Â ÀÌÀ¯´Â, ¸¹Àº ÄÄÆÄÀÏ·¯¿¡¼­ printf¹® ¿¡ Á÷Á¢ Áõ°¡, °¨¼Ò ¿¬»êÀÚ¸¦ ±âÀÔÇÒ ¶§ Á¤È®ÇÑ ¼ø¼­·Î ¿¬»êÀÌ µÇÁö ¾Ê´Â ¹® Á¦Á¡ÀÌ Àֱ⠶§¹® ÀÔ´Ï´Ù. Á¦°¡ ÇØ º» °á°ú BC++ 3.1¿¡¼­ÀÇ °á°ú´Â »ó´çÈ÷ Ư ÀÌÇÏ°Ô ¸ðµÎ 3À̾ú½À´Ï´Ù. 1Çб⠱⸻ °í»ç¶§Àΰ¡ ÀÌ ¹®Á¦°¡ ³ª¼­ ÀüºÎ ´Ù ¸Â °Ô ÇØ ÁÖ¾ú´ø ÀûÀÌ ÀÖÁö¿ä. Á¤È®ÇÑ °á°ú´Â 1 3 5 ÀÔ´Ï´Ù. Áõ°¡, °¨¼Ò ¿¬»êÀÚ´Â *¿¬»êÀÚº¸´Ù ¿ì¼± ¼øÀ§ °¡ ³ô½À´Ï´Ù. Çϳª¾¿ »ìÆ캸µµ·Ï ÇÏÁö¿ä. *pi++Àº ¿ì¼±¼øÀ§¿¡ ÀÇÇØ *(pi++)°ú °°½À´Ï´Ù. ±×·¯³ª postfix ¿¬»êÀÚ´Â ¿¬ »êÀÌ ´Ê°Ô ÇàÇØÁö¹Ç·Î ¿ì¼± *pi°¡ ÇàÇØÁ® a¿¡ 1ÀÌ µé¾î°¡°í pi++·Î ÀÎÇØ piÆ÷ ÀÎÅÍ°¡ Çϳª Áõ°¡ÇÏ°Ô µÇÁö¿ä. ¸¸¾à (*pi)++À̶ó°í Çß´Ù¸é ¾î¶³±î¿ä? ¿ì¼± *pi·Î ÀÎÇØ °ªÀ» Àоî¿À±ä ÇÏ°Ú Áö¿ä. ±×·¯³ª ++°¡ ÇàÇØÁö´Â ´ë»óÀº pi°¡ ¾Æ´Ñ *pi ÀÔ´Ï´Ù. ´Ù½Ã ¸»Çؼ­ ÀÐ¾î ¿Â °ª¿¡ ++¸¦ ÇÑ´Ù´Â °ÍÀÌÁö¿ä. a¿¡ ÀÌ °ªÀ» ´ëÀÔÇß´Ù¸é °á°ú´Â 2¿´°ÚÁö¿ä. *++pi´Â *(++pi)¿Í °°½À´Ï´Ù. prefix ¿¬»êÀÚÀ̹ǷΠ¿ì¼±ÀûÀ¸·Î pi¸¦ Çϳª Áõ°¡½ÃŲ ´ÙÀ½¿¡ ±× °ªÀ» Àоî¿À°Ô µÇÁö¿ä. ¿ø·¡ÀÇ pi´Â 3À» °¡¸®Å°°í ÀÖ¾úÀ¸ ¹Ç·Î Çϳª Áõ°¡½ÃŲ À§Ä¡ÀÇ °ªÀÎ 5°¡ °á°ú°¡ µÇ°ÚÁö¿ä. ++*piÀÇ °æ¿ì´Â ¾î¶³±î¿ä? ÀÌ°ÍÀº ++(*pi)¿Í °°°Ô µÇ°ÚÁö¿ä. ¿ì¼±¼øÀ§¿¡ ÀÇ ÇØ *(++pi)°¡ µÇ´Â °Í ¾Æ´Ï³Ä°í ÇϽÇÁöµµ ¸ð¸£°Ú´Âµ¥. ±×·¸Áö ¾ÊÁö¿ä. ¼ø¼­·Î º¼¶§ ++°¡ ¿¬»êÀ» ÇàÇÒ ´ë»óÀº *piÀ̱⠶§¹®ÀÌÁö¿ä. ´Ù½Ã ¸»¾¸µå·Á ¿ì¼±¼øÀ§ ´Â µÎ°³ÀÇ ¿¬»êÀÚ°¡ µ¿µîÇÑ ÀÔÀåÀÏ ¶§ °í·Á°¡ µÇ´Â °ÍÀÔ´Ï´Ù. À§¿¡¼­ *pi++ó ·³ ¾çÂÊÀ¸·Î ³ª´©¾îÁ® ÀÖÀ» ¶§ ¸»ÀÌÁö¿ä. ¹Ù·Î À§¿¡¼­ *++pi¿¡¼­µµ ¿ì¼±¼øÀ§ ¾ê±â´Â ÇÏÁö ¾Ê¾ÒÁö¿ä. ´ç¿¬È÷ ¿¬»êÇÒ ´ë»ó¿¡ ´õ °¡±î¿î °ÍÀÌ ¸ÕÀú ½ÇÇàµÇ´Â ¹ýÀÔ´Ï´Ù. ¢Ä ¸Þ¸ð¸® µ¿Àû ÇÒ´ç ÀÌÁ¦ ¸Þ¸ð¸®¸¦ µ¿Àû ÇÒ´çÇÏ´Â ¹æ¹ý¿¡ ´ëÇؼ­ ¾Ë¾Æº¸µµ·Ï ÇÏÁö¿ä. ¸Þ¸ð¸® µ¿ Àû ÇÒ´çÀ» À§Çؼ­´Â alloc.h¸¦ ¹Ýµå½Ã ÀÎŬ·çµå ÇØ ÁÖ¾î¾ß ÇÕ´Ï´Ù. ¾ÈÇصµ ÅÍ º¸ C¿¡¼­´Â ¿¡·¯ ¾øÀÌ ÄÄÆÄÀϵÇÁö¸¸ ½ÇÇà Áß¿¡ ¹®Á¦°¡ »ý±æ ¼öµµ ÀÖ½À´Ï´Ù. ÀÏ´Ü ¸Þ¸ð¸® µ¿Àû ÇÒ´çÀº malloc°ú free¸¦ »ç¿ëÇÑ´Ù´Â °Ç ¾Æ½Ã°ÚÁö¿ä. char *pc, *pi; pc = (char *)malloc(sizeof(char)*3); pi = (int *)malloc(sizeof(int)*3); À§ÀÇ ¿¹¿¡¼­ ¾Ë ¼ö ÀÖµíÀÌ malloc¿¡ ³Ñ°ÜÁÖ´Â °ªÀº ¿ì¸®°¡ ±× µ¿¾È »ç¿ëÇß ´ø °ª°ú´Â Â÷ÀÌ°¡ ÀÖ½À´Ï´Ù. ¿ì¸®°¡ ¹è¿­¿¡¼­ »ç¿ëÇÑ ´ÜÀ§´Â ¹è¿­¿ä¼ÒÀÇ ¼ö¸¦ ±âÁØÀ¸·Î ÇßÁö¸¸, ¿©±â¼­´Â ±× ½ÇÁ¦ ¹ÙÀÌÆ® ¼ö¸¦ ±âÁØÀ¸·Î ÇÏ°í ÀÖÁö¿ä. ±×·¸ ±â ¶§¹®¿¡ sizeof·Î ½ÇÁ¦ ÀÚ·áÇüÀÇ Å©±â¸¦ °è»êÇÏ°í ÀÖ½À´Ï´Ù. mallocÀº ÁÖ¾îÁø Å©±â ¸¸Å­ÀÇ ¸Þ¸ð¸®¸¦ ÇÒ´çÇÏ°í ±× Æ÷ÀÎÅ͸¦ void *ÇüÀ¸·Î ¹Ýȯ ÇÕ´Ï´Ù. ¸Þ¸ð¸® ±¸Á¶´Â ´ÙÀ½°ú °°Áö¿ä. ¦®¦¬¦¬¦³¦¬¦¬¦¬¦¬¦¬¦¬¦¬¦¬¦¬¦¬¦¬¦¬¦¬¦¬¦¬¦¬¦¬¦¬¦¬¦¬¦¬¦¬¦¬¦¬¦¬¦¬¦¬¦¬¦¬¦¬¦¬¦¯ ¦­ÁÖ¼Ò¦­ 41 42 43 5A 5B 5C 5D 5E ¦­ ¦­ ¦­ ¦³¦¬¦³¦¬¦³¦¬¦³¦¬¦¬¦¬¦¬¦¬¦¬¦¬¦¬¦¬¦¬¦¬¦¬¦³¦¬¦¬¦¬¦¬¦¬¦¬¦¬¦³¦¬¦³ ¦­ ¦­ °ª ¦­ ¦­¢Æ¦­¢Æ¦­¢Æ¦­ ¡¦ ¦­41¦­00¦­00¦­00¦­ ¦­ ¦­ ¦­ ¦­ ¦µ¦¬¦µ¦¬¦µ¦¬¦µ¦¬¦¬¦¬¦¬¦¬¦¬¦¬¦¬¦¬¦¬¦¬¦¬¦µ¦¬¦¬¦¬¦¬¦¬¦¬¦¬¦µ¦¬¦µ ¦­ ¦­À̸§¦­ pc ¦­ ¦±¦¬¦¬¦µ¦¬¦¬¦¬¦¬¦¬¦¬¦¬¦¬¦¬¦¬¦¬¦¬¦¬¦¬¦¬¦¬¦¬¦¬¦¬¦¬¦¬¦¬¦¬¦¬¦¬¦¬¦¬¦¬¦¬¦¬¦¬¦° ¦®¦¬¦¬¦³¦¬¦¬¦¬¦¬¦¬¦¬¦¬¦¬¦¬¦¬¦¬¦¬¦¬¦¬¦¬¦¬¦¬¦¬¦¬¦¬¦¬¦¬¦¬¦¬¦¬¦¬¦¬¦¬¦¬¦¬¦¬¦¯ ¦­ÁÖ¼Ò¦­ 61 62 63 64 65 66 7A 7B 7C 7D 7E ¦­ ¦­ ¦­ ¦³¦¬¦¬¦¬¦³¦¬¦¬¦¬¦³¦¬¦¬¦¬¦³¦¬¦¬¦¬¦¬¦¬¦¬¦³¦¬¦¬¦¬¦¬¦¬¦¬¦¬¦³¦¬¦³ ¦­ ¦­ °ª ¦­ ¦­¢Æ¦­¢Æ¦­¢Æ¦­¢Æ¦­¢Æ¦­¢Æ¦­ ¡¦ ¦­61¦­00¦­00¦­00¦­ ¦­ ¦­ ¦­ ¦­ ¦µ¦¬¦¬¦¬¦µ¦¬¦¬¦¬¦µ¦¬¦¬¦¬¦µ¦¬¦¬¦¬¦¬¦¬¦¬¦µ¦¬¦¬¦¬¦¬¦¬¦¬¦¬¦µ¦¬¦µ ¦­ ¦­À̸§¦­ pi ¦­ ¦±¦¬¦¬¦µ¦¬¦¬¦¬¦¬¦¬¦¬¦¬¦¬¦¬¦¬¦¬¦¬¦¬¦¬¦¬¦¬¦¬¦¬¦¬¦¬¦¬¦¬¦¬¦¬¦¬¦¬¦¬¦¬¦¬¦¬¦¬¦° ÇÒ´çµÈ ¸Þ¸ð¸®´Â ÃʱâÈ­ µÈ °ÍÀº ¾Æ´Õ´Ï´Ù. Áï, ¾î¶² °ªÀÌ µé¾îÀÖÀ»Áö ¸ð¸¥ ´Ù´Â °ÍÀÌÁö¿ä. ÀÌÁ¦ ÀÏ¹Ý ¹è¿­À» »ç¿ëÇÏ´Â °Íó·³ ¾µ ¼ö°¡ ÀÖÁö¿ä. pc[0] = 1; pi[2] = 3; ±×¸®°í »ç¿ëÀ» ³¡³ÂÀ» ¶§¿¡´Â free·Î ÇØÁ¦¸¦ ÇØ ÁÖ°Ô µÇÁö¿ä. ¹Ýµå½Ã ÇØ ÁÖ ¾î¾ß ÇÕ´Ï´Ù. ¹°·Ð ÇÒ´çÇÑ ¸Þ¸ð¸®°¡ ÀÛÀ» ¶§´Â ¾È Çصµ Å« ¹®Á¦°¡ ¾øÁö¸¸ ¾ð Á¦ ¹®Á¦°¡ ¹ß»ýÇÒÁö´Â ¸ð¸£´Â °ÅÁö¿ä. free(pc); free(pi); ¢Ä µ¿Àû ÇÒ´ç°ú ÀÎÀÚ ´ÙÀ½ÀÇ ¿¹Á¦¸¦ º¸¼¼¿ä. void my_alloc(int *ap, int size) { ap = (int *)malloc(size); } void main(void) { int *pi; my_alloc(pi, 10); // ... } ÀÌ ¿¹Á¦°¡ °ú¿¬ Á¦´ë·Î ÀÛµ¿À» ÇÒ±î¿ä? ±×·²µí ÇÏÁö¸¸, ÀüÇô Á¦´ë·Î µ¿ÀÛÇÏ Áö ¾Ê´Â ÄÚµå ÀÔ´Ï´Ù. ¿ÖÀϱî¿ä? my_alloc ÇÔ¼ö·Î pi¸¦ ³Ñ°åÁö¸¸ ½ÇÁ¦·Î ³Ñ¾î °£ °ÍÀº pi º¯¼ö°¡ ¾Æ´Ñ ±× º¯¼öÀÇ °ªÀÔ´Ï´Ù. ¿ª½Ã Call by valueÀ̱⠶§¹®ÀÌ Áö¿ä. ¹°·Ð ±× º¯¼öÀÇ °ªÀº ÃʱâÈ­µÇÁö ¾Ê¾ÒÀ¸¹Ç·Î ¾Ë ¼ö°¡ ¾ø½À´Ï´Ù. ±×·¸°Ô ³Ñ¾î¿Â ÀÎÀÚÀÎ ap¿¡ ´Ù½Ã mallocÀÇ ¸®ÅÏ °ªÀ» ´ëÀÔÇØ ³ÖÁö¿ä? ±×·³ ¾î¶»°Ô µÉ±î¿ä? ³×. ±×·¸Áö¿ä. ¿ø·¡ ³Ñ¾î°£ piÀÇ °ª°ú´Â ÀüÇô °ü°è¾ø´Â °ªÀÌ ap¿¡ µé¾î°¡°í °ð À̾î Æ÷ÀÎÅÍ º¯¼ö ap´Â ¾ø¾îÁ® ¹ö¸®Áö¿ä. piÀÇ °ªÀº ¾ÆÁ÷µµ ÃʱâÈ­µÇÁö ¾ÊÀº ä·Î ³²¾ÆÀÖ´Â °Ì´Ï´Ù. ap¿¡ ÇÒ´çµÈ ¸Þ¸ð¸®´Â ±× Æ÷ÀÎÅ͸¦ °¡Áö°í ÀÖ´Â º¯¼ö°¡ ¾øÀ¸¹Ç·Î ÇØÁ¦ÇÒ ¼öµµ ¾ø°Ô µÇ¾î ¹ö¸®Áö¿ä. Ãʺ¸ÀÚµéÀÌ ÈçÈ÷ ÀúÁö¸£´Â ½Ç¼ö´Â ÀÌ·¸°Ô µ¿Àû ÇÒ´çÀ» ÇÏ°í´Â Æ÷ÀÎÅÍ °ü¸® ¸¦ Àß ÇÏÁö ¸øÇÏ´Â µ¥¼­ ÀϾ´Ï´Ù. Á¤¸®ÇÏÀÚ¸é, mallocÀ¸·Î ¹ÞÀº °ªÀº free°¡ µÇ±â Àü±îÁö Àý´ë·Î ÇÁ·Î±×·¡¸Ó °¡ ¾ðÁ¦¶óµµ »ç¿ëÇÒ ¼ö ÀÖ´Â º¯¼öÀÇ ÇüÅ·Π³²¾Æ ÀÖ¾î¾ß ÇÑ´Ù´Â °ÍÀÌÁö¿ä. À§ ¿¡¼­ apÀÇ ½ºÄÚÇÁ´Â my_alloc ÇÔ¼öÀ̱⠶§¹®¿¡ ÇÔ¼ö°¡ ³¡³ª¸é »ç¶óÁö´Â °Ç ´ç ¿¬ÇÏÁö¿ä. ¾î¶§¿ä? ³Ê¹« ¾î·Á¿ü³ª¿ä? Á» ¾î·Á¿ö º¸À̱ä ÇÏÁö¸¸ õõÈ÷ Àо¸é ±×·¸ °Ô ¾î·Á¿ï °Íµµ ¾øÁö¿ä. ¾î·Æ°Ô »ý°¢µÇ´õ¶óµµ, ÀÌ ºÎºÐ¸¸ ÀÌÇظ¦ Çß´Ù¸é CÀÇ Æ÷ÀÎÅÍ´Â ÀÌÁ¦ ¾Æ¹«°Íµµ ¾Æ´Õ´Ï´Ù. ±×³É ¸· ÁÖ¹«¸¦ ¼ö ÀÖ¾î¿ä. ÀÌÁ¦ºÎÅÍ´Â ´Ù Â÷¿ø ¹è¿­ Æ÷ÀÎÅÍ¿Í ±¸Á¶Ã¼ µî¿¡ ´ëÇØ ¾Ë¾Æº¼ °Ì´Ï´Ù. ¿ª½Ã ¿©Å±îÁöÀÇ ºÎºÐ À» ÀÌÇØÇÏ¼Ì´Ù¸é ¾Æ¹«°Íµµ ¾Æ´Õ´Ï´Ù.