10-1-´Ù.Æ÷ÀÎÅÍ ¿¬»ê

Æ÷ÀÎÅÍ ¿¬»êÀ̶õ ÇÇ¿¬»êÀÚ ÁßÀÇ Çϳª°¡ Æ÷ÀÎÅÍÀÎ ¿¬»êÀÌ´Ù. pi++°ú °°ÀÌ Æ÷ÀÎÅÍÇü º¯¼ö¿¡ ´ëÇÑ ¿¬»ê, pi1-pi2°°ÀÌ Æ÷ÀÎÅͳ¢¸®ÀÇ ¿¬»êÀ̳ª ar-pi, pi+3°°ÀÌ Æ÷ÀÎÅÍ º¯¼ö³ª Æ÷ÀÎÅÍ »ó¼ö°¡ ÇÇ¿¬»êÀÚ Áß¿¡ Çϳª¶óµµ ÀÖÀ¸¸é ÀÌ·± ¿¬»êÀ» Æ÷ÀÎÅÍ ¿¬»êÀ̶ó°í ÇÑ´Ù. Æ÷ÀÎÅͶó´Â ŸÀÔÀÌ Á¤¼ö³ª ½Ç¼ö°°Àº ¼öÄ¡µé°ú´Â ´Ù¸¥ µ¶Æ¯ÇÑ Å¸ÀÔÀ̱⠶§¹®¿¡ Æ÷ÀÎÅÍ ¿¬»êµµ ÀϹÝÀûÀÎ »ê¼ú ¿¬»ê°ú´Â ´Ù¸¥ ±ÔÄ¢ÀÌ Àû¿ëµÈ´Ù.

ÀÌ ±ÔÄ¢µéÀ» Àß ¼÷ÁöÇÏ°í ÀÖ¾î¾ß Æ÷ÀÎÅ͸¦ ÀÚÀ¯ ÀÚÀç·Î ´Ù·ê ¼ö ÀÖ´Ù. ±ÔÄ¢ÀÌ Á» ¸¹±â´Â ÇÏÁö¸¸ Áö±ØÈ÷ »ó½ÄÀûÀÎ ³»¿ëµéÀ̱⠶§¹®¿¡ ÀÌÇØÇϱ⠾î·ÆÁö ¾ÊÀ¸¸ç ÇÑ ¹ø¸¸ ÀÌÇØÇØ µÎ¸é ½Ç¹«¿¡ Àû¿ëÇϴµ¥ Å« È¥¶õÀº ¾øÀ» °ÍÀÌ´Ù. Áß¿äÇÑ ³»¿ëÀÌÁö¸¸ »ý°¢º¸´Ù ½¬¿ì¹Ç·Î °¡º­¿î ¸¶À½À¸·Î Àо¸é µÈ´Ù.

 

 Æ÷ÀÎÅͳ¢¸® ´õÇÒ ¼ö ¾ø´Ù.

µ¡¼ÀÀº °¡Àå ±âº»ÀûÀÎ ¿¬»êÀÌÁö¸¸ Æ÷ÀÎÅͳ¢¸®ÀÇ µ¡¼ÀÀº Çã¿ëµÇÁö ¾Ê´Â´Ù. ¿Ö³ÄÇÏ¸é ¹øÁö°ª³¢¸® ´õÇÑ´Ù´Â °ÍÀº ¾Æ¹«·± Àǹ̰¡ ¾ø±â ¶§¹®ÀÌ´Ù. º¯¼ö x, y¸¦ Æ÷ÀÎÅÍ º¯¼ö px, py°¡ °¢°¢ °¡¸®Å°°í ÀÖ´Ù°í ÇÏÀÚ. ¼³¸íÀÇ ÆíÀÇ»ó x´Â 1000¹øÁö¿¡ ÀÖ°í y´Â 1500¹øÁö¿¡ ÀÖ´Ù°í °¡Á¤ÇÑ´Ù. À̶§ Æ÷ÀÎÅͳ¢¸® ´õÇÏ´Â px+py ¿¬»êÀº Çã¿ëµÇÁö ¾Ê´Â´Ù.

¹øÁö¶ó´Â ŸÀÔÀº ºÎÈ£¾ø´Â Á¤¼öÇüÀÌ¸ç µû¶ó¼­ px¿Í py¸¦ ±»ÀÌ ´õÇÏ°íÀÚ ÇÑ´Ù¸é 2500À¸·Î ¿¬»êÇÒ ¼öµµ ÀÖ´Ù. ±×·¯³ª ÀÌ·± ¿¬»êÀ» Çã¿ëÇÏÁö ¾Ê´Â ÀÌÀ¯´Â 2500À̶ó´Â °á°ú°ªÀ̳ª ¶Ç´Â 2500¹øÁö¿¡ µé¾îÀÖ´Â °ªÀÌ x³ª y ¸ðµÎ¿¡°Ô ¾î¶°ÇÑ Àǹ̵µ ¾ø±â ¶§¹®ÀÌ´Ù.

Á¶±Ý¸¸ »ý°¢ÇØ º¸¸é ¹øÁö³¢¸® ´õÇÑ °ªÀÌ Àǹ̰¡ ¾ø´Ù´Â °ÍÀ» Á÷°¨ÀûÀ¸·Î ÀÌÇØÇÒ ¼ö ÀÖÀ» °ÍÀÌ´Ù. ¸¸¾à ÀÌÇØ°¡ Àß ¾ÈµÈ´Ù¸é ½Ç»ýÈ°¿¡¼­ ºñ½ÁÇÑ ¿¹¸¦ µé¾î º¸ÀÚ. ³»°¡ 2000¿øÀ» °¡Áö°í ÀÖ°í Ä£±¸°¡ 1000¿øÀ» °¡Áö°í ÀÖ´Ù¸é µÑÀÌ °¡Áø µ·À» ÇÕÃÄ 3000¿øÀ̶ó´Â °á°ú¸¦ ¸¸µé ¼ö ÀÖÀ¸¸ç ÀÌ 3000¿øÀº ºÐ¸íÈ÷ Àǹ̰¡ ÀÖ´Â °ªÀÌ´Ù. 3000¿øÀ¸·Î ºØ¾î»§ 12°³¸¦ »ç ¸ÔÀ» ¼öµµ ÀÖ°í °ÔÀӹ濡¼­ Çѽ𣵿¾È ³î ¼öµµ ÀÖ´Ù. µÑÀÌ °¡Áø µ·À» ´õÇÑ 3000¿øÀÌ Àǹ̰¡ ÀÖ´Â ÀÌÀ¯´Â ±Ý¾×À̶ó´Â ´ÜÀ§°¡ ¾çÀ¸·Î Æò°¡µÇ´Â ¼ºÁúÀÌ Àֱ⠶§¹®ÀÌ´Ù.

±×·¯³ª µî±ÞÀ̳ª ³ªÀÌ°°Àº ´ÜÀ§´Â Á» ´Ù¸£´Ù. ³»°¡ 25»ìÀÌ°í Ä£±¸°¡ 26»ìÀÏ ¶§ µÎ »ç¶÷ÀÇ ³ªÀ̸¦ ´õÇÑ 51»ìÀº µµ´ëü ¾î¶² Àǹ̰¡ ÀÖÀ»±î? ³ªÀ̸¦ ´õÇÑ 51À̶ó´Â ¼öÄ¡¿¡´Â ¾î¶°ÇÑ Àǹ̵µ ºÎ¿©ÇÒ ¼ö°¡ ¾ø´Ù. µÑÀÇ ³ªÀ̸¦ ´õÇϸé 51»ìÀ̹ǷΠµÑÀÌ ÇÔ²² ´ëÅë·É È帷ΠÃ⸶ÇѴٵ簡(´ëÅë·É ÇǼ±°Å ÀÚ°ÝÀº 50»ì ÀÌ»ó) ¶Ç´Â ¿·Áý¿¡ »ç´Â 49»ìÂ¥¸® °Ç´Þ¿¡°Ô °¡¼­ ¿ì¸®°¡ ³ªÀÌ°¡ ´õ ¸¹´Ù°í °Ç´ÞÀ» È¥³» Áشٵ簡 ÇÏ´Â ÀÏÀÌ °¡´ÉÇÑ°¡ ¸»ÀÌ´Ù.

³ªÀ̳¢¸® ´õÇÑ °ªÀÌ ¾Æ¹« Àǹ̰¡ ¾ø´Â ÀÌÀ¯´Â ³ªÀ̶ó´Â ´ÜÀ§°¡ ¾çÀ¸·Î Æò°¡µÇ´Â °ÍÀ̶ó±â º¸´Ù´Â ±¸ºÐ ³»Áö´Â À§Ä¡·Î Æò°¡µÇ´Â ¼ºÁúÀÌ ´õ °­Çϱ⠶§¹®ÀÌ´Ù. ±×·¡¼­ ³ªÀÌ°ªÀ» ´õÇÒ ¼ö´Â ÀÖÁö¸¸ ´õÇØ ºÃÀÚ ¾Æ¹«Â¦¿¡µµ ¾µ¸ð¾ø´Â °ªÀÌ ³ª¿À°Ô µÈ´Ù. ¾Æ¸¶ ¿©·¯ºÐµéµµ ½Ç»ýÈ°¿¡¼­ ³ªÀ̳¢¸® µ¡¼ÀÀ» ÇØ º» °æÇèÀÌ ¾øÀ» °ÍÀÌ´Ù. ÀÌ·± ½ÄÀ¸·Î ¼ýÀڷΠǥ±âÇÏÁö¸¸ ¾çÀÌ ¾Æ´Ñ ´ÜÀ§µéÀÌ ¸¹ÀÌ Àִµ¥ ÇлýÀÇ Ãâ¼® ¹øÈ£³ª ÀÎÅÍ³Ý IP ¹øÈ£ µîµµ ±× ÇÑ ¿¹ÀÌ´Ù. ÀÌ·± °ªµéÀº ´Ù¼öÀÇ ´ë»óµéÀ» ±¸ºÐÇÏ´Â °ÍÀÌ ¸ñÀûÀÌ´Ù.

¹øÁö°ªµµ ¸¶Âù°¡Áö·Î µ¡¼À ÀÚü´Â °¡´ÉÇÏÁö¸¸ ±× °á°ú°ªÀÌ ¾Æ¹«·± Àǹ̸¦ °¡ÁöÁö ¸øÇÑ´Ù. ±×·¡¼­ Æ÷ÀÎÅͳ¢¸® µ«¼À ¿¬»êÀ» Çϸé ÄÄÆÄÀÏ·¯°¡ ¿¡·¯ ¸Þ½ÃÁö¸¦ Ãâ·ÂÇÏ°í ÄÄÆÄÀÏÀ» °ÅºÎÇÑ´Ù. Æ÷ÀÎÅͳ¢¸®ÀÇ µ¡¼À ¿¬»ê¹®Àº 99.99%ÀÌ»ó ÇÁ·Î±×·¡¸ÓÀÇ ½Ç¼öÀÏ °¡´É¼ºÀÌ ³ôÀ¸¸ç ÀÌ ¿¬»ê¹®À» ±×´ë·Î ÄÄÆÄÀÏÇÏ¸é ´ë°³ÀÇ °æ¿ì ÇÁ·Î±×·¥ÀÌ ¿ÀÀÛµ¿ÇÒ À§ÇèÀÌ ÀÖ´Ù. ±×·¡¼­ ÀÌ·± À§ÇèÀ» ¹æÁöÇϱâ À§ÇØ Æ÷ÀÎÅͳ¢¸®ÀÇ µ¡¼ÀÀº ±ÝÁöµÇ¾î ÀÖ´Ù.

Áï Æ÷ÀÎÅͳ¢¸®ÀÇ µ¡¼ÀÀ» ±ÝÁöÇÏ´Â ÀÌÀ¯´Â ºÒ°¡´ÉÇؼ­°¡ ¾Æ´Ï¶ó ´ëºÎºÐÀÇ °æ¿ì ´Ü¼øÇÑ ½Ç¼öÀÏ È®·üÀÌ ³ô±â ¶§¹®ÀÌ´Ù. ¸¸¾à ¾î¶² ÀÌÀ¯·Î µÎ Æ÷ÀÎÅ͸¦ ²À ´õÇÏ°í¾ß ¸»°Ú´Ù¸é ±»ÀÌ ¸øÇÒ °Íµµ ¾ø´Ù. Æ÷ÀÎÅ͸¦ unsigned·Î ij½ºÆÃÇؼ­ ´õÇÑ ÈÄ ´Ù½Ã Æ÷ÀÎÅÍ Å¸ÀÔÀ¸·Î ij½ºÆÃÇÏ¸é °¡´ÉÇÏ´Ù. ÄÄÆÄÀÏ·¯´Â ¸í½ÃÀûÀΠij½ºÆ® ¿¬»êÀÚ¿¡ ´ëÇؼ­´Â ¾î¶°ÇÑ ÅÂŬµµ °ÉÁö ¾Ê´Â´Ù.

 Æ÷ÀÎÅͳ¢¸® »¬ ¼ö´Â ÀÖ´Ù.

Æ÷ÀÎÅͳ¢¸® ´õÇÑ °ªÀº ¾Æ¹«·± Àǹ̰¡ ¾øÁö¸¸ »« °ªÀº µÎ ¿ä¼Ò°£ÀÇ »ó´ëÀûÀÎ °Å¸®¶ó´Â Àǹ̰¡ ÀÖ´Ù. ±×·¡¼­ Æ÷ÀÎÅͳ¢¸®ÀÇ »¬¼ÀÀº ¿øÄ¢ÀûÀ¸·Î Çã¿ëµÇ¸ç ½ÇÁ¦·Î ¸¹ÀÌ »ç¿ëµÈ´Ù. ´ÙÀ½ ¿¹Á¦¸¦ ½ÇÇàÇØ º¸ÀÚ.

 

¿¹ Á¦ : PointerMinus

#include <Turboc.h>

 

void main()

{

     char ar[]="Pointer";

     char *pi1, *pi2;

 

     pi1=&ar[0];

     pi2=&ar[5];

 

     printf("%c¿Í %cÀÇ °Å¸®´Â %d\n",*pi1,*pi2,pi2-pi1);

}

 

ŸÀÔÀÌ °°Àº ÀÓÀÇÀÇ µÎ Æ÷ÀÎÅÍ¿¡ ´ëÇØ »¬¼ÀÀÌ °¡´ÉÇÏ´Ù. ÇÏÁö¸¸ ÀϹÝÀûÀ¸·Î µÎ Æ÷ÀÎÅÍ°¡ °°Àº ¹è¿­³»ÀÇ ´Ù¸¥ ¿ä¼Ò¿¡ °¡¸®Å°°í ÀÖÀ» ¶§¸¸ ½ÇÁúÀûÀÎ Àǹ̰¡ ÀÖ´Ù. ¹®ÀÚÇüÀÇ ar¹è¿­Àº "Pointer"¶ó´Â ¹®ÀÚ¿­À» ÀúÀåÇÏ°í ÀÖÀ¸¸ç pi1Àº ù ¹ø° ¿ä¼ÒÀÎ 'P'ÀÚ À§Ä¡¸¦ °¡Å°°í ÀÖ°í pi2´Â ¿©¼¸ ¹ø° ¿ä¼ÒÀÎ 'e' ¹®ÀÚ¸¦ °¡¸®Å°°í ÀÖ´Ù. ÀÌ »óÅ¿¡¼­ pi2-pi1¿¬»ê¹®Àº µÎ ¹è¿­ ¿ä¼ÒÀÇ °Å¸®¸¦ ±¸ÇÑ´Ù.

½ÇÇàÇØ º¸¸é "P¿Í eÀÇ °Å¸®´Â 5"¶ó´Â °á°ú°¡ Ãâ·ÂµÇ´Âµ¥ pi2-pi1 ¿¬»ê¿¡ ÀÇÇØ ¹®ÀÚ 'P'¿Í 'e'°¡ 5¸¸Å­ ¶³¾îÁ® ÀÖ´Ù´Â °ÍÀ» ¾Ë ¼ö ÀÖ´Ù. ¸¸¾à µÎ ¹®ÀÚ »çÀÌ¿¡ ¸î°³ÀÇ ¹®ÀÚµéÀÌ ÀÖ´ÂÁö¸¦ ¾Ë°í ½Í´Ù¸é °Å¸®¿¡¼­ 1À» »© pi2-pi1-1À» °è»êÇÏ¸é µÇ´Âµ¥ o, i, n, t 4°³ÀÇ ¹®ÀÚ°¡ °¡¿îµ¥¿¡ ÀÖ´Ù´Â °ÍÀ» ¾Ë ¼ö ÀÖ´Ù. µÎ ¿ä¼Ò »çÀÌÀÇ ¸Þ¸ð¸® Å©±â¸¦ °è»êÇÏ°í ½Í´Ù¸é »¬¼ÀÇÑ °á°ú¿¡ sizeof(¿ä¼ÒŸÀÔ)¸¦ °öÇÑ´Ù.

³» ³ªÀÌ°¡ 25»ìÀÌ°í µ¿»ýÀÇ ³ªÀÌ°¡ 23»ìÀÏ ¶§ ÀÌ µÎ »ç¶÷ÀÇ ³ªÀ̸¦ »« °ªÀº µÎ »ç¶÷ÀÇ ³ªÀÌÂ÷°¡ µÇ¸ç ºÐ¸íÈ÷ Àǹ̰¡ ÀÖ´Ù. µ¿»ýÀÌ µÎ »ìÀ» ´õ ¸ÔÀ¸¸é ³» ³ªÀÌ¿Í °°¾ÆÁø´Ù¶óµç°¡ ³»°¡ µ¿»ýº¸´Ù µÎ »ì ´õ ¸¹´Ù´Â Ç¥ÇöÀÌ °¡´ÉÇÏÁö ¾ÊÀº°¡? ³ªÀÌ°ª³¢¸® »¬¼ÀÀÌ °¡´ÉÇÑ °Íó·³ Æ÷ÀÎÅͳ¢¸®ÀÇ »¬¼Àµµ °¡´ÉÇÏ´Ù.

Æ÷ÀÎÅͳ¢¸® »¬¼ÀÀ» ÇÑ ¿¬»ê °á°ú´Â ´õ ÀÌ»ó Æ÷ÀÎÅÍ°¡ ¾Æ´Ï¸ç ´Ü¼øÇÑ Á¤¼ö°ªÀÌ´Ù. µÎ »ç¶÷ÀÇ ³ªÀÌÂ÷°¡ ´õ ÀÌ»ó ³ªÀÌ°¡ ¾Æ´Ñ ´Ü¼øÇÑ ¼öÄ¡°¡ µÇ¾î ¹ö¸®´Â °Íó·³ µÎ Æ÷ÀÎÅÍÀÇ »ó´ëÀûÀÎ °Å¸®µµ ¹øÁö°¡ ¾Æ´Ñ Á¤¼ö°ªÀÌ´Ù. µû¶ó¼­ ´ÙÀ½°ú °°Àº ´ëÀÔ ¿¬»êÀº ¾ÈµÈ´Ù.

 

ptr1=ptr2-ptr3;

 

ptr2-ptr3Àº Àû¹ýÇÑ ¿¬»êÀÌÁö¸¸ ÀÌ ¿¬»êÀÇ °á°úÀÎ Á¤¼ö¸¦ ptr1À̶ó´Â Æ÷ÀÎÅÍ º¯¼ö¿¡ ´ëÀÔÇÒ ¼ö´Â ¾ø´Ù. ±×·¡¼­ ¾ÕÀÇ ¿¹Á¦¿¡¼­µµ pi2-pi1¿¡ ´ëÀÀµÇ´Â printfÀÇ ¼­½ÄÀº Á¤¼öÇüÀÎ %d¿´´Ù.

Æ÷ÀÎÅͳ¢¸® »¬¼ÀÀ» ÇÑ °á°ú´Â ÀÏ´Ü Á¤¼öÇüÀε¥ Á¤È®ÇÑ Å¸ÀÔÀº ÄÄÆÄÀÏ·¯¿¡ µû¶ó ´Ù¸£¸ç Ç¥ÁØÀº Æ÷ÀÎÅÍÀÇ »¬¼À °á°ú ŸÀÔÀ» stddef.h¿¡ ptrdiff_t ŸÀÔÀ¸·Î Á¤ÀÇÇϵµ·Ï ±ÔÁ¤ÇÏ°í ÀÖ´Ù. ºñÁÖ¾ó C++ÀÇ °æ¿ì´Â int·Î typedefµÇ¾î ÀÖÀ¸¸ç Dev-C++Àº long int·Î Á¤ÀÇÇÏ°í ÀÖ´Ù. Æ÷ÀÎÅÍ´Â ¿ø·¡ ºÎÈ£°¡ ¾ø´Â ŸÀÔÀÌÁö¸¸ µÚÂÊ ¹øÁö¿¡¼­ ¾ÕÂÊ ¹øÁö¸¦ »¬ ¼öµµ ÀÖÀ¸¹Ç·Î Æ÷ÀÎÅͳ¢¸® »¬¼ÀÇÑ °á°ú´Â ºÎÈ£°¡ ÀÖ¾î¾ß ÇÑ´Ù. ÁÖ¼Ò °ø°£ÀÌ 16ºñÆ®ÀÎ ½Ã½ºÅÛ¿¡¼­´Â ¾Æ¸¶µµ short°¡ µÉ °ÍÀÌ´Ù.

 Æ÷ÀÎÅÍ¿¡ Á¤¼ö¸¦ ´õÇϰųª »¬ ¼ö ÀÖ´Ù.

Æ÷ÀÎÅͳ¢¸® ´õÇÒ ¼ö´Â ¾øÁö¸¸ Æ÷ÀÎÅÍ¿Í Á¤¼ö¸¦ ´õÇÒ ¼ö´Â ÀÖ´Ù. Á¤¼ö µ¡¼ÀÀÇ ´Ù¸¥ Ç¥ÇöÀÎ ++, --µµ ´ç¿¬È÷ °¡´ÉÇÏ´Ù. ³» ³ªÀÌ°¡ 25»ìÀÏ ¶§ ¾ÕÀ¸·Î ¼¼ »ì ´õ ¸ÔÀ¸¸é Àå°¡¸¦ °¡°Ú´Ù´Â Ç¥ÇöÀ̳ª ´Ù¼¸ »ìÀ» ´õ ¸ÔÀ¸¸é ¼­¸¥»ìÀÌ µÈ´Ù´Â µîÀÇ Ç¥ÇöÀÌ °¡´ÉÇÏÁö ¾ÊÀº°¡? Æ÷ÀÎÅÍ º¯¼ö ptr¿¡ Á¤¼ö i¸¦ ´õÇÑ ptr+i´Â ptrÀÌ °¡¸®Å°°í ÀÖ´Â ¹øÁö¿¡¼­ºÎÅÍ i¹ø° ¿ä¼ÒÀÇ ¹øÁö¸¦ ³ªÅ¸³»´Â ÀǹÌÀÖ´Â °ªÀÌ´Ù.

ptr+1Àº ¹Ù·Î ´ÙÀ½ ¿ä¼ÒÀÇ ¹øÁö¸¦ °¡¸®Å°¸ç ptr+2´Â ´ÙÀ½ ´ÙÀ½ ¿ä¼ÒÀÇ ¹øÁö¸¦ °¡¸®Å²´Ù. Æ÷ÀÎÅÍ¿Í Á¤¼öÀÇ »¬¼Àµµ °¡´ÉÇѵ¥ prt-1Àº ¹Ù·Î ÀÌÀü ¿ä¼Ò, ptr-2´Â µÎÄ­ ¾ÕÂÊÀÇ ¿ä¼Ò¸¦ °¡¸®Å³ °ÍÀÌ´Ù. ¹°·Ð ÀÌ ¿¬»êµµ ½ÇÁúÀûÀÎ Àǹ̰¡ ÀÖÀ¸·Á¸é ptrÀÌ ¹è¿­³»ÀÇ ÇÑ ÁöÁ¡À» °¡¸®Å°°í °¡°¨ÇÑ °á°úµµ °°Àº ¹è¿­³»¿¡ ¼ÓÇØ¾ß ÇÑ´Ù. ¾Õ¿¡¼­ »ìÆì ºÃÁö¸¸ Æ÷ÀÎÅÍ¿Í Á¤¼ö¸¦ ´õÇÒ ¶§ ½ÇÁ¦ Æ÷ÀÎÅÍ°ªÀÇ À̵¿ °Å¸®´Â sizeof(ŸÀÔ)¸¸Å­ÀÌ´Ù. ptrÀÌ Á¤¼öÇü Æ÷ÀÎÅÍÀÏ ¶§ ptr+1Àº ptrÀÇ ¹øÁöº¸´Ù 4¹ÙÀÌÆ® µÚÂÊÀ» °¡¸®Å²´Ù.

Æ÷ÀÎÅÍ¿¡ Á¤¼ö¸¦ ´õÇϰųª »« ¿¬»êÀÇ °á°ú´Â ¿ª½Ã Æ÷ÀÎÅÍÀÌ´Ù. ptr+i´Â ptr¹øÁö¿¡¼­ i¿ä¼Ò¸¸Å­ µÚÂÊÀ» °¡¸®Å°´Â ¹øÁö°ªÀ̹ǷΠÀÌ ¿¬»ê °á°úµµ Æ÷ÀÎÅÍ°¡ µÇ´Â °ÍÀÌ´Ù. Æ÷ÀÎÅͳ¢¸® »¬¼ÀÇÑ °á°ú°¡ Á¤¼öÀÎ °Í°ú´Â ±¸ºÐÇØ¾ß ÇÑ´Ù. µû¶ó¼­ ´ÙÀ½°ú °°Àº ¿¬»êÀº Àû¹ýÇÏ´Ù.

 

ptr1=ptr2+2;

ptr1=ptr2--;

 

ptr2¿¡ 2¸¦ ´õÇÑ °á°ú´Â ptr2ÀÇ ´ÙÀ½ ´ÙÀ½ ¿ä¼Ò¸¦ °¡¸®Å°´Â Æ÷ÀÎÅÍÀÌ¸ç µû¶ó¼­ ÀÌ °á°ú¸¦ ptr1¿¡ ´ëÀÔ °¡´ÉÇÏ´Ù.

 Æ÷ÀÎÅͳ¢¸® ´ëÀÔÇÒ ¼ö ÀÖ´Ù. Á¤¼öÇü Æ÷ÀÎÅÍ p1, p2°¡ ÀÖÀ» ¶§ p1=p2 ´ëÀÔ½ÄÀ¸·Î p2°¡ ±â¾ïÇÏ°í ÀÖ´Â ¹øÁö¸¦ p1¿¡ ´ëÀÔÇÒ ¼ö ÀÖ´Ù. ³Ê¹« ³Ê¹« ´ç¿¬ÇÑ ¾ê±â¶ó º°µµÀÇ ¼³¸íÀÌ ÇÊ¿ä¾øÀ» °ÍÀÌ´Ù. ´Ù¸¸ ´ëÀÔ½ÄÀÇ Áº¯°ú ¿ìº¯ÀÇ Æ÷ÀÎÅÍ Å¸ÀÔÀÌ ÀÏÄ¡ÇØ¾ß ÇÑ´Ù´Â °Í¸¸ ÁÖÀÇÇÏÀÚ. ¸¸¾à µÎ Æ÷ÀÎÅÍÀÇ Å¸ÀÔÀÌ Æ²¸± °æ¿ì´Â ij½ºÆ® ¿¬»êÀڷΠŸÀÔÀ» °­Á¦·Î ¸ÂÃß¾î¾ß ÇÑ´Ù.

 

int *pi,i=1234;

unsigned *pu;

pi=&i;

pu=(unsigned *)pi;

 

pi´Â ºÎÈ£ÀÖ´Â Á¤¼öÇü Æ÷ÀÎÅÍÀÌ°í pu´Â ºÎÈ£¾ø´Â Á¤¼öÇü Æ÷ÀÎÅÍÀε¥ pu=pi·Î ¹Ù·Î ´ëÀÔÇϸé ŸÀÔÀÌ ¸ÂÁö ¾ÊÀ¸¹Ç·Î ¿¡·¯(Åͺ¸ C´Â °æ°í)·Î 󸮵ȴÙ. ²À ´ëÀÔÇÏ·Á¸é ij½ºÆ® ¿¬»êÀÚ¸¦ »ç¿ëÇÒ ¼ö ÀÖµÇ ´ëÀÔ ÈÄÀÇ °á°ú¿¡ ´ëÇؼ­´Â °³¹ßÀÚ°¡ Ã¥ÀÓÁ®¾ß ÇÑ´Ù.

 Æ÷ÀÎÅÍ¿Í ½Ç¼ö¿ÍÀÇ ¿¬»êÀº Çã¿ëµÇÁö ¾Ê´Â´Ù.

¹øÁö¶ó´Â °ªÀº Á¤¼öÀÇ ¹üÀ§¿¡¼­¸¸ Àǹ̰¡ Àֱ⠶§¹®¿¡ ½Ç¼ö¿Í´Â ¾î¶°ÇÑ ¿¬»êµµ ÇÒ ¼ö ¾ø´Ù. pc+0.5¶ó´Â ¿¬»êÀ» Çã¿ëÇÑ´Ù¸é ÀÌ ¹øÁö´Â µµ´ëü ¾îµð¸¦ °¡¸®ÄÑ¾ß ÇÒÁö ¾Ö¸ÅÇÒ °ÍÀÌ´Ù. ¹ÙÀÌÆ® Áß°£ÀÇ ºñÆ®¸¦ °¡¸®Å³ ¼ö´Â ¾ø´Âµ¥ ¿Ö³ÄÇÏ¸é ºñÆ®´Â ±â¾ïÀÇ ÃÖ¼Ò´ÜÀ§ÀÏ»ÓÀÌ¸ç ¹øÁö¸¦ °¡Áö´Â ÃÖ¼Ò ´ÜÀ§´Â ¹ÙÀÌÆ®À̱⠶§¹®ÀÌ´Ù. µû·Î ³í¸®ÀûÀÎ ÀÌÀ¯¸¦ ´ëÁö ¾Ê´õ¶óµµ Æ÷ÀÎÅÍ¿Í ½Ç¼ö¿ÍÀÇ ¿¬»êÀº ÀüÇô ¾î¿ï¸®Áö ¾ÊÀ¸¸ç ÇÊ¿äÇÏÁöµµ ¾Ê´Ù´Â °ÍÀ» ½±°Ô ÀÌÇØÇÒ ¼ö ÀÖÀ» °ÍÀÌ´Ù. Æ÷ÀÎÅÍ¿Í ½Ç¼ö¸¦ ¿¬»êÇϸé ÄÄÆÄÀÏ·¯´Â "ÇÇ¿¬»êÀÚ´Â Á¤¼ö¸¸ ½á ÁÖ¼¼¿ä"¶ó´Â ¿¡·¯ ¸Þ½ÃÁö¸¦ Ãâ·ÂÇÑ´Ù.

 Æ÷ÀÎÅÍ¿¡ °ö¼ÀÀ̳ª ³ª´°¼ÀÀ» ÇÒ ¼ö ¾ø´Ù.

Æ÷ÀÎÅÍ¿¡ °ö¼À, ³ª´°¼ÀÀ» ÇÏ´Â °ÍÀÌ ºÒ°¡´ÉÇÑ ÀÏÀº ¾Æ´ÏÁö¸¸ ¿¬»êÀÇ Çʿ伺ÀÌ ÀüÇô ¾ø´Ù°í ÇØ¾ß ¿ÇÀ» °ÍÀÌ´Ù. ¹øÁö°ªÀ» °öÇؼ­ µµ´ëü ¾îµð´Ù ¾µ °ÍÀΰ¡¸¦ °õ°õÈ÷ »ý°¢ÇØ º¸¸é ¿ª½Ã ÀüÇô ÇÊ¿ä°¡ ¾ø´Ù´Â °ÍÀ» ¾Ë ¼ö ÀÖ´Ù. ½Ç»ýÈ°¿¡¼­ ³ªÀÌ¿¡ ¾î¶² °ªÀ» °öÇÒ ÀÏÀÌ ¾ø´Â °Íó·³ ¸»ÀÌ´Ù. À½¼ö ºÎÈ£ ¿¬»êÀÚ(-), ³ª¸ÓÁö ¿¬»êÀÚ(%), ºñÆ® ¿¬»êÀÚ, ½¬ÇÁÆ® ¿¬»êÀÚ µîµµ ¸ðµÎ Æ÷ÀÎÅÍ¿Í´Â ÇÔ²² ¾µ ¼ö ¾ø´Â ¿¬»êÀÚµéÀÌ´Ù.

 Æ÷ÀÎÅͳ¢¸® ºñ±³´Â °¡´ÉÇÏ´Ù.

µÎ Æ÷ÀÎÅÍ°¡ °°Àº ¹øÁö¸¦ °¡¸®Å°°í ÀÖ´ÂÁö¸¦ Á¶»çÇϱâ À§ÇØ ==, != »óµî ºñ±³ ¿¬»êÀÚ¸¦ »ç¿ëÇÒ ¼ö ÀÖÀ¸¸ç »ê¼ú ¿¬»ê°ú µ¿ÀÏÇÑ Àǹ̸¦ °¡Áø´Ù. ¹°·Ð À̶§ ¾çÂÊÀÇ µ¥ÀÌÅÍ Å¸ÀÔÀº ÀÏÄ¡ÇØ¾ß ÇÑ´Ù. Æ÷ÀÎÅͳ¢¸® °ªÀ» ºñ±³ÇÏ´Â ÀÏÀº ±×¸® ÈçÇÑ ÀÏÀº ¾Æ´ÏÁö¸¸ Æ÷ÀÎÅÍ°ªÀÇ À¯È¿¼ºÀ» Á¡°ËÇϱâ À§ÇØ NULL°ª°ú ºñ±³ÇÏ´Â ¿¬»êÀº ÀÚÁÖ ÀÌ¿ëµÈ´Ù. Æ÷ÀÎÅÍÇüÀ» ¸®ÅÏÇÏ´Â ÇÔ¼öµéÀº ¿¡·¯°¡ ¹ß»ýÇߴٴ ǥ½Ã·Î NULLÀ» ¸®ÅÏÇϹǷΠÀÌ ÇÔ¼öµéÀÇ ½ÇÇà °á°ú¸¦ Á¡°ËÇϱâ À§ÇØ Æ÷ÀÎÅÍ¿Í NULLÀ» ºñ±³ÇÑ´Ù.

 

if (ptr == NULL)

if (ptr != NULL)

 

ÀÌ·± ºñ±³ ¿¬»ê¹®Àº °ÅÀÇ ´ëºÎºÐ "¿¡·¯°¡ ¹ß»ýÇßÀ¸¸é~"À̶ó´Â Á¶°Ç½ÄÀÌ´Ù. »óµî ºñ±³ ¿¬»êÀÚ»Ó¸¸ ¾Æ´Ï¶ó <, >, <=, >= µîÀÇ Å©±â¸¦ ºñ±³ÇÏ´Â ¿¬»êÀÚµµ »ç¿ëÇÒ ¼ö ÀÖ´Ù. À̶§ ¾çÂÊÀº µ¥ÀÌÅÍ Å¸ÀÔÀÌ ÀÏÄ¡ÇØ¾ß ÇÏ´Â °ÍÀº ¹°·ÐÀÌ°í ÀǹÌÀÖ´Â ºñ±³°¡ µÇ·Á¸é °°Àº ¹è¿­³»ÀÇ Æ÷ÀÎÅÍ¿©¾ß ÇÑ´Ù. ´ÙÀ½ Á¶°Ç¹®Àº "ptr1ÀÌ ptr2º¸´Ù ´õ µÚÂÊÀÇ ¿ä¼Ò¸¦ °¡¸®Å°°í ÀÖÀ¸¸é" À̶ó´Â ¶æÀÌ´Ù.

 

if (ptr1 > ptr2)

 

ÀÌ»óÀ¸·Î Æ÷ÀÎÅÍ ¿¬»ê½ÃÀÇ ÁÖÀÇ »çÇ׿¡ ´ëÇØ ¾Ë¾Æº¸¾Ò´Âµ¥ ¾çÀÌ Á» ¸¹±â´Â ÇÏÁö¸¸ ±×´ÙÁö ¾î·ÆÁö´Â ¾Ê¾ÒÀ» °ÍÀÌ´Ù. Æ÷ÀÎÅÍ¿¡ ½Ç¼ö¸¦ ¾µ ¼ö ¾ø´Ù°Å³ª °öÇϱ⳪ ³ª´©±â°¡ ºÒÇÊ¿äÇÏ´Ù´Â °ÍÀº »ó½ÄÀûÀÎ ³»¿ëÀ̹ǷΠÀÌÇظ¸ ÇÏ¸é µÉ °ÍÀÌ°í ´ÙÀ½ ¼¼°¡Áö ÁÖÀÇ »çÇ׸¸ µû·Î ¾Ï±âÇØ µÎµµ·Ï ÇÏÀÚ. º»°ÝÀûÀ¸·Î ¾î·Á¿öÁö±â Àü¿¡ ÀÌ Á¤µµ´Â ¹Ýµå½Ã ¾Ï±âÇÏ´Â °ÍÀÌ Â÷ÈÄÀÇ È¥µ·À» Á¶±ÝÀÌ¶óµµ ÁÙÀÌ´Â ¹æÃ¥ÀÌ µÉ ¼ö ÀÖ´Ù.

 

¨ç Æ÷ÀÎÅͳ¢¸® ´õÇÒ ¼ö ¾ø´Ù.

¨è Æ÷ÀÎÅͳ¢¸® »¬ ¼ö ÀÖÀ¸¸ç ¿¬»ê °á°ú´Â Á¤¼öÀÌ´Ù.

¨é Æ÷ÀÎÅÍ¿Í Á¤¼öÀÇ °¡°¨ ¿¬»êÀº °¡´ÉÇÏ¸ç ¿¬»ê °á°ú´Â Æ÷ÀÎÅÍÀÌ´Ù.

 

Æ÷ÀÎÅÍ ¿¬»êÀÇ Á¾ÇÕ ½Ç½ÀÀ» À§ÇØ µÎ Æ÷ÀÎÅÍÀÇ ÁßÁ¡À» ±¸ÇÏ´Â ¿¹Á¦¸¦ ÀÛ¼ºÇØ º¸ÀÚ. Å©±â 5ÀÇ Á¤¼öÇü ¹è¿­ ar[5]°¡ ÀÖ°í p1ÀÌ ar[0]¸¦ °¡¸®Å°°í p2°¡ ar[4]¸¦ °¡¸®Å°°í ÀÖÀ» ¶§ µÎ Æ÷ÀÎÅÍÀÇ Áß°£ ÁöÁ¡ÀÇ °ªÀ» ÀÐ°í ½Í´Ù°í ÇÏÀÚ. ±×¸²¿¡¼­ º¸´Ù½ÃÇÇ ar[2]ÀÇ ³»¿ëÀÎ 3ÀÇ °ªÀ» ±¸ÇÏ°í ½ÍÀº °ÍÀÌ´Ù.

ÀϹÝÀûÀÎ »ê¼ú ¿¬»ê¿¡¼­ a¿Í bÀÇ ÁßÁ¡Àº (a+b)/2·Î ½±°Ô ±¸ÇÒ ¼ö ÀÖ´Ù. ±×·¯³ª Æ÷ÀÎÅͳ¢¸®ÀÇ µ¡¼ÀÀÌ Çã¿ëµÇÁö ¾Ê±â ¶§¹®¿¡ ÀÌ·± °£´ÜÇÑ °ø½ÄÀ¸·Î´Â Áß°£ ÁöÁ¡À» ±¸ÇÒ ¼ö ¾øÀ¸¸ç ´ÙÀ½ ¿¹Á¦¿Í °°ÀÌ °è»êÇØ¾ß ÇÑ´Ù.

 

¿¹ Á¦ : MidPointer

#include <Turboc.h>

 

void main()

{

     int ar[]={1,2,3,4,5};

     int *p1,*p2,*p3;

 

     p1=&ar[0];

     p2=&ar[4];

     p3=p1+(p2-p1)/2;

 

     printf("Áß°£ÀÇ ¿ä¼Ò = %d",*p3);

}

 

µ¡¼ÀÀÌ Çã¿ëµÇÁö ¾ÊÀ¸¹Ç·Î p2-p1À¸·Î µÎ ÁöÁ¡ÀÇ °Å¸®¸¦ ±¸ÇÏ°í ½ÃÀÛ¹øÁö(base)ÀÎ p1¿¡ °Å¸®ÀÇ Àý¹ÝÀ» ´õÇÏ¿© Áß°£ ÁöÁ¡ÀÇ ¹øÁö¸¦ ±¸ÇßÀ¸¸ç ±× °á°ú¸¦ p3¿¡ ´ëÀÔÇß´Ù. ±×¸®°í *p3¸¦ Ãâ·ÂÇÏ¸é ¿øÇÏ´Â Áß°£ ÁöÁ¡ÀÇ °ªÀÎ 3ÀÌ Ãâ·ÂµÈ´Ù. ÀÌ ¿¬»êÀÌ ¾î¶»°Ô µ¿ÀÛÇÏ¸ç ¿Ö Àû¹ýÇÑÁö Àß ºÐ¼®ÇØ º¸ÀÚ.

Æ÷ÀÎÅͳ¢¸®´Â »¬¼ÀÀÌ °¡´ÉÇϹǷΠp2-p1Àº Àû¹ýÇÑ ¿¬»ê¹®ÀÌ¸ç »¬¼À °á°ú´Â Á¤¼ö°¡ µÇ¹Ç·Î ÀÌ °ªÀ» 2·Î ³ª´­ ¼ö ÀÖ´Ù. (p2-p1)/2¶ó´Â ¼ö½ÄÀº µÎ Æ÷ÀÎÅÍ°£ÀÇ Àý¹Ý °Å¸®¸¦ ³ªÅ¸³»´Â Á¤¼ö »ó¼ö¸¦ ¸¸µé¾î³½´Ù. Æ÷ÀÎÅÍ¿¡ Á¤¼ö¸¦ ´õÇÒ ¼ö ÀÖÀ¸¹Ç·Î p1¿¡ Àý¹Ý °Å¸®¸¦ ´õÇÒ ¼ö ÀÖ°í ±× °á°ú´Â Æ÷ÀÎÅÍÀ̹ǷΠp3°¡ ÀÌ Æ÷ÀÎÅÍ°ªÀ» ´ëÀÔ¹ÞÀ» ¼ö ÀÖ´Ù.

ÀÌ ¿¬»ê¹®Àº ¾ÆÁÖ °£´ÜÇÏÁö¸¸ Æ÷ÀÎÅÍ ¿¬»ê¿¡ ´ëÇÑ ¸ðµç °ÍÀ» ÇÑ ÁÙ¿¡ ´Ù Ç°°í ÀÖ´Â ¾ÆÁÖ ÇÙ½ÉÀûÀÎ ÄÚµåÀÌ´Ù. Â÷ÈÄ¿¡ Æ÷ÀÎÅÍ ¿¬»ê ±ÔÄ¢ÀÌ Àß »ý°¢³ªÁö ¾ÊÀ» ¶§ ÀÌ ¿¬»ê¹®À» ¶°¿Ã·Á º¸¸é ¸¹Àº µµ¿òÀÌ µÉ °ÍÀÌ´Ù. ÀÌ ¿¬»ê¹®À» Åë°·Î ¿Ü¿ì°í ½Í´Ù¸é Àû±Ø ±ÇÀåÇÏ°í ½ÍÀ¸¸ç ÀÌ ¿¹Á¦¸¦ Åë°·Î ¿Ü¿ì°Ú´Ù¸é ±»ÀÌ ¸»¸®Áö ¾Ê°Ú´Ù.