Beginner's Guide to Pointers
ÃÑ ÆäÀÌÁö ¼ö : 3224

Àüü ÇÔ¼ö/¿ë¾î»çÀü
Facebook Joinc ±×·ì   Joinc QA »çÀÌÆ®



joinc´Â Firefox¿Í chrome¿¡¼­ Å×½ºÆ® Çß½À´Ï´Ù. IE¿¡¼­´Â Å×À̺íÀÌ ±úÁö°Å³ª À̹ÌÁö°¡ º¸ÀÌÁö ¾ÊÀ» ¼ö ÀÖ½À´Ï´Ù. ƯÈ÷ ±¸±Û DocsÀ̹ÌÁöÀÇ °æ¿ì ¿¢¹Úó¸®µÉ ¼ö ÀÖ½À´Ï´Ù.

ÀÌ·¸°Ô ¿Å°Ü ¿À¸é ¾È µÉ°Íµµ °°°í... 070123 --Crystal
C Wiki ¿¡¼­ ¹ø¿ª±³Á¤ÀÛ¾÷ Çϰí ÀÖ½À´Ï´Ù. -- yundream 2007/1/24



¿øº»±Û : http://www.codeproject.com/cpp/pointers.asp
Donwload source files - 3kb



<<Æ÷ÀÎÅͶõ?>>
Æ÷ÀÎÅÍÀÇ ±â¹ÝÀº ´Ù¸¥ º¯¼ö¿Í °°½À´Ï´Ù
±×·¯³ª, ±×°ÍÀº ½ÇÁ¦ÀûÀÎ µ¥ÀÌÅ͸¦ °°°íÀÖ´Â°Í ´ë½Å¿¡ Á¤º¸¸¦ ãÀ»¼öÀÖ´Â ¸Þ¸ð¸® °ø°£ÀÇ ÁÖ¼Ò¸¦ °¡Áö°íÀÖ´Ù
À̰ÍÀº ¸Å¿ì Áß¿äÇÑ °³³äÀÔ´Ï´Ù, ±×¸®°í ¸¹Àº ÇÁ·Î±×·¥°ú Æ÷ÀÎÅ͸¦ ±â¹ÝÀ¸·Î ÇÑ µðÀÚÀεéÀÇ ¸µÅ©¸®½ºÆ®°°Àº°Íµé ¾ÆÀ̵ð¾î¸¦ ¸¸µé¾î³½´Ù.

<<½ÃÀÛ>>
¾î¶»°Ô Æ÷ÀÎÅ͸¦ Á¤ÀÇÇÒ²«°¡?
º¯¼öÀ̸§¿¡ º°Ç¥(*)¸¦ ºÙÀ̴°ÍÀ» Á¦¿ÜÇÏ°ï ´Ù¸¥º¯¼ö¿Í µ¿ÀÏÇÏ´Ù.
¿¹¸¦µé¾îº¸ÀÚ, ¾Æ·¡ÀÇ µÎ°³´Â µÑ´Ù intÇü Æ÷ÀÎÅÍ Æ÷ÀÎÅ͸¦ ¸¸µé¾îÁØ´Ù :

int* pNumberOne;
int* pNumberTwo;
µÎ°³ÀÇ º¯¼öÀ̸§¾Õ¿¡ p´Â ¹«¾ùÀ» ¾Ë¸®´Â°ÍÀΰ¡? À̰ÍÀº º¯¼ö°¡ Æ÷ÀÎÅ͸¦ °¡¸£Å²´Ù´Â °ü½À(dz½À)ÀÌ´Ù.

ÀÌÁ¦, ¸¸µé¾îÁø Æ÷ÀÎÅÍ·Î ¹«¾ð°¡¸¦ ÇØº¸ÀÚ :

pNumberOne = &some_number;
pNumberTwo = &some_other_number;
&±âÈ£´Â 'the address of' ¶ó°í Àоî¾ßÇÑ´Ù, ±×¸®°í º¯¼öÀÚ½ÅÀ» ´ë½ÅÇØ ¸Þ¸ð¸® ÁÖ¼Ò¸¦ µÇµ¹·ÁÁØ´Ù.
¿¹¸¦µé¾îº¸ÀÚ, pNumberOneÀÇ ÁÖ¼Ò´Â some_number¿Í °°´Ù ±×·¡¼­ pNumberOneÀº »õ·Î¿î some_numberÀÇ ÁÖ¼ÒÀÌ´Ù;

¸¸¾à ¿ì¸®°¡ some_numberÀÇ ÁÖ¼Ò¸¦ ÂüÁ¶Çϰí½Í´Ù¸é pNumberOneÀ» ´ë½ÅÇØ ÀÌ¿ëÇÒ¼öÀÖ´Ù
¸¸¾à pNumberOneÀ¸·ÎºÎÅÍ some_numberÀÇ º§·ù°ªÀ» ÂüÁ¶Çϰí½Í´Ù¸é, *pNumberOneÀ¸·Î ¾²¸éµÈ´Ù
* Æ÷ÀÎÅÍ ¿ªÂüÁ¶±âÈ£´Ù, ±×¸®°í 'the memory location pointed to by' ¶ó°í Àд´Ù, 'int *pNumber' ó·³ ¼±¾ðÇϴ°ÍÀ» Á¦¿ÜÇÏ°í ¸»ÀÌ´Ù.

<<¹«¾ùÀ» ¹è웟´Â°¡?: ¿¹Á¦:>>
¸¸¾à ´Ï°¡ ÀÌÇØÇÏÁö¸øÇÏ°í Æ÷±âÇÏ·Á°í ÇÑ´Ù¸é, ³ª´Â À̹®±¸¸¦ Àо±â¸¦ ÃßÃµÇØÁÖ°í½Í´Ù; Æ÷ÀÎÅÍ´Â º¹ÇÕÇÑ ÁÖÁ¦ÀÌ´Ù ±×¸®°í À̰ÍÀ» ¸¶½ºÅÍ Çϱ⿡´Â ¿À·¡°É¸±¼öµµÀÖ´Ù

¿©±â À§¿¡ ³»¿ë¿¡ ´ëÇÑ ¿¹Á¦°¡ ÀÖ´Ù, c++¹®ÀåÀÌ ¾Æ´Ñ c¾ð¾î·Î ÀÛ¼ºµÇ¾ú´Ù.

#include <stdio.h>

void main()
{
// º¯¼öÀÇ ¼±¾ð
int nNumber;
int *pPointer;

// ÀÌÁ¦, º¯¼ö¸¦ ´ëÀÔÇÑ´Ù
nNumber = 15;
pPointer = &nNumber;

// nNumber·ÎºÎÅÍ º¯¼ö¸¦ Ãâ·ÂÇØÁØ´Ù:
printf("nNumber is equal to : %dn", nNumber);

// ÀÌÁ¦, pPointer¸¦ ÅëÇØ nNumber¸¦ ¹Ù²ãº¸ÀÚ:
  • pPointer = 25;

    // À§ ¸í·ÉÀ¸·Î ÀÎÇØ nNumber°¡ º¯°æÀÇ °á°ú¸¦ Áõ¸íÇϱâÀ§ÇØ
    // º¯¼ö¸¦ ´Ù½Ã Ãâ·ÂÇÑ´Ù:
    printf("nNumber is equal to : %dn", nNumber);
  • }

    »ý°¢Çϸ鼭 ÀоîºÁ¶ó ±×¸®°í ÀÌ ¿¹Á¦Äڵ带 ÄÄÆÄÀϺ¸°í ¿Ö ÀÌ·¸°Ô µÇ´ÂÁö ³Ê´Â ÀÌÇØÇØ¾ßÇÑ´Ù. ÀÌÇØ°¡ ´Ù 됬´Ù¸é, °è¼ÓÀоî¶ó!

    <<ÇÔÁ¤!>>
    º¸¾Æ¶ó ¸¸¾à ³Ê°¡ ¾Æ·¡ÇÁ·Î±×·¥Ã³·³ ´ÙÀ½°ú°°Àº ½Ç¼ö¸¦ ÇÑ´Ù¸é :

    #include <stdio.h>

    int *pPointer;

    void SomeFunction();
    {
    int nNumber;
    nNumber = 25;

    // pPointer Æ÷ÀÎÅÍ¿¡ nNumberÀ» ¸¸µé¾îÁØ´Ù:
    pPointer = &nNumber;
    }

    void main()
    {
    SomeFunction(); // pPointer ÁÖ¼Ò¿¡ ¹«¾ð°¡ ¸¸µé¾îÁØ´Ù

    // ¿Ö ½ÇÆÐÇϴ°¡!?
    printf("Value of *pPointer:%dn", *pPointer);
    }

    ÇÁ·Î±×·¥Àº óÀ½À¸·Î SomeFunctionÇÔ¼ö¸¦ È£ÃâÇÑ´Ù, nNumberº¯¼ö¸¦ »ý¼ºÇϰí pPointer Æ÷ÀÎÅ͸¦ ¸¸µé¾î ³Ö´Â´Ù
    ÇÏÁö¸¸ À̰ÍÀº ¹®Á¦°¡ ÀÖ´Ù.
    ÇÔ¼ö¸¦ ºüÁ®³ª°¥¶§, nNumberÀº Áö¿öÁø´Ù, ¿Ö³Ä¸é Áö¿ªº¯¼öÀ̱⠶§¹®ÀÌ´Ù.

    Áö¿ªº¯¼ö´Â Ç×»ó ¼±¾ðÇÑ ±× ºí·°¿¡¼­ ÀÌ¿ëµÇ°í ºüÁ®³ª°¥¶§ Áö¿öÁø´Ù.
    This means when SomeFunction returns to main(), the variable is deleted, so pPointer is pointing at where the variable used to be, which no longer belongs to this program.
    À̰ÍÀº SomeFunctionÀÌ mainÀ¸·Î µÇµ¹¾Æ¿À¸é, À̺¯¼ö´Â Áö¿öÁø´Ù, ±×·¡¼­ pPinterÀÇ Æ÷ÀÎÅÍ´Â º¯¼ö¸¦ ÀÌ¿ëÇÒ¼öÀÖ´Ù,

    ¸¸¾à À̰ÍÀ» ÀÌÇØÇÏÁö ¸øÇß´Ù¸é, À̰ÍÀº ¾Æ¸¶ Áö¿ªº¯¼ö¿Í Àü¿ªº¯¼ö, À¯È¿¹üÀ§¿¡ ´ëÇØ ´Ù½Ã Àоî¾ßÇÑ´Ù
    À̰ÍÀº ¸Å¿ì Áß¿äÇÑ °³³äÀÌ´Ù.

    ¹®Á¦Á¡À» Ç®¾ú´Â°¡? Á¤´äÀº ¸Þ¸ð¸® ÇÒ´çÀÇ ±â¼úÀ» ¾Ë¾Æ ÀÌ¿ëÇÒ¼öÀÕ¾î¾ß ÇÑ´Ù.
    ÀÌ Æ²¸°Á¡À» ±ú´â¾Æ¾ßÇÑ´Ù.
    c¿Í c++ÀÇ »çÀÌ¿¡¼­, ÀÌÈÄ ´ëºÎºÐ °è¹ßÀº c++·Î¾Æ·¡ÄÚµå¿Í °°Àº Äڵ带 ÀÌ¿ëÇÑ´Ù

    <<µ¿Àû ÇÒ´ç>>
    µ¿Àû ÇÒ´çÀº ¾Æ¸¶ Æ÷ÀÎÅ͹®Á¦ÀÇ ÇØ°á¹æ¹ýÀϰÍÀÌ´Ù
    º¯¼ö Á¤ÀÇ¿Í pointer ÁÖ¼Ò¸¦ ¸¸µéÁö¾Ê°í ¸Þ¸ð¸®¸¦ ÇÒ´çÇÒ¼öÀÖ´Ù.

    ºñ·Ï °³³äÀÌ ¸¹ÀÌ ÇÞ°¥¸±¼öÀÖ°ÙÁö¸¸ , ¸Å¿ì °£´ÜÇÏ´Ù. ¾Æ·¡ÄÚµå´Â integer ¸Þ¸ð¸®¸¦ ÇÒ´çÇϴ°ÍÀ» º¸¿©ÁØ´Ù :

    int *pNumber;
    pNumber = new int;

    óÀ½ÁÙÀº pNumber·Î Æ÷ÀÎÅ͸¦ ¼±¾ðÇÑ´Ù
    µÎ¹øÂ°ÁÙÀº interger ¸Þ¸ð¸®¸¦ ÇÒ´çÇϰí pNumber Æ÷ÀÎÅÍ¿¡ ÀÌ »õ·Î¿î ¸Þ¸ð¸®¸¦ ¸¸µé¾îÁØ´Ù
    ÀÌ ¿¹Á¦´Â double·Î °°À̸¸µç ¿¹Á¦ÀÌ´Ù :

    double *pDouble;
    pDouble = new double;

    À̽ÄÀº °°ÀºÇü½ÄÀÌ´Ù, so you can't really fail with this bit.

    µ¿ÀûÇÒ´çÀÌ ´Ù¸¥°Ç, ¾Æ¹«¸® ÇÔ¼ö¿¡¼­ ºüÁ®³ª¿À°Å³ª ¼±¾ðÇÑ ºí·°À» ºüÁ®³ª¿Ã¶§¿¡µµ ³Ê°¡ ÇÒ´çÇÑ ¸Þ¸ð¸®°¡ Áö¿öÁöÁö ¾Ê´Â´Ù´Â°ÍÀÌ´Ù.
    ±×·¡¼­ ¸¸¾à ³Ê°¡ µ¿ÀûÇÒ´çÀ» ÀÌ¿ëÇØ ÀÌ ¿¹Á¦¸¦ ´Ù½Ã ¾´´Ù¸é, ¿ì¸®´Â ´ÙÀ½°ú°°ÀÌ ÀÛ¼ºÇÒ¼öÀÖ´Ù :

    #include <stdio.h>

    int *pPointer;

    void SomeFunction()
    {
    // pPointer Æ÷ÀÎÅÍ¿¡ new integer¸¦ ¸¸µç´Ù
    pPointer = new int;
  • pPointer = 25;
  • }

    void main()
    {
    SomeFunction(); // pPointer Æ÷ÀÎÅÍ¿¡ ¹«¾ð°¡¸¦ ¸¸µé¾îÁØ´Ù
    printf("Value of *pPointer:%dn", *pPointer);
    }

    »ý°¢Çϸ鼭 Àо¾Æ¶ó, ±×¸®°í ÄÄÆÄÀÏ·¯°¡ ¾î¶»°Ô ÇÒÂî »ý°¢Çغ¸°í ¿Ö ÀÌ·¸°Ô ³ª¿À´ÂÁö ÀÌÇØÇØº¸¾Æ¶ó.
    SomeFunctionÀÌ È£ÃâµÉ¶§, ¸Þ¸ð¸®¸¦ ÇÒ´çÇϰí pPointer Æ÷ÀÎÅÍ¿¡ À̰ÍÀ» ¸¸µé¾îÁØ´Ù.
    ÇÔ¼ö°¡ ¸®Åϵɶ§, »õ·Î¿î ¸Þ¸ð¸®´Â ¿ø·¡´ë·Î ³²¾ÆÀÖ´Ù, ±×·¡¼­ pPointer´Â ÀÌ¿ëÇÒ¼öÀÕ´Ù.
    µ¿ÀûÇÒ´çÀÌ À̰ÍÀÌ´Ù! ¸¸µç°ÍÀ» ÀÌÇØÇÒ¼öÀÖ¾î¾ßÇϰí Àо¸é¼­ ¹è¿ì´Â°Í¿¡ Èï¹Ì¸¦ ºÙ¿©ºÁ¶ó, ±×¸®°í ¿Ö ÀÌ ÄÚµå´Â ¿¡·¯°¡ ÀϾÁö ¾Ê´ÂÁö »ý°¢ÇغÁ¶ó.


    <<Memory comes, memory goes>>
    À̰ÍÀº ºñ·Ï ¸Å¿ì½±°Ô °íÄ¥¼öÀÖÁö¶óµµ Ç×»ó º¹ÀâÇϰí À̰ÍÀº ¸Å¿ìÁß´ëÇѰÍÀÌ´Ù,
    »ý°¢Çغ¼¹®Á¦´Â ³Ê°¡ ÇÒ´çÇÏ¿© ÀÌ¿ëÇÏ´Â µ¿ÀûÇÒ´çÀ» ÆíÇÏ°Ô ±×³É ³õ¾ÆµÖ¹ö¸®´Â°ÍÀÌ´Ù, ÀÌ ¸Þ¸ð¸®´Â ½ÇÁ¦·Î Àý¶§ ÀÚµ¿À¸·Î Á¦°ÅµÇÁö ¾Ê´Â´Ù

    ÇÁ·Î±×·¥ÀÌ ³¡³µÀ»¶§¿¡µµ ÄÄÇ»ÅÍ´Â ¸Þ¸ð¸®´Â ÇÒ´çµÈä·Î ³²°ÜµÑ°ÍÀÌ´Ù.
    °á±¹ À̰ÍÀº ¸¸¾à ÄÄÇ»ÅÍ¿¡°Ô ¸Þ¸ð¸®ÀÇ »ç¿ëÀÇ ³¡À» ¸»ÇØÁÖÁö ¾Ê´Â´Ù¸é, À̰ÍÀº À̰ÍÀº ´Ù¸¥ ÇÁ·Î±×·¥ÀÇ °ø°£À» ³¶ºñÇϰųª ´Ù¸¥ ³ÊÀÇÇÁ·Î±×·¥¿¡ ´Ù¸¥ºÎºÐ¿¡ ÀÌ¿ëµÉ°ÍÀÌ´Ù

    ÃÖÈÄ¿¡´Â ¸ðµç ¸Þ¸ð¸®¸¦ ½á¹ö·Á¼­ ½Ã½ºÅÛ Ãæµ¹À» ÀϾ°ÍÀÌ´Ù, ±×·¡¼­ À̰ÍÀº ¸Å¿ì Áß¿äÇÏ´Ù.
    ³ÊÀÇ ÇÁ·Î±×·¥ÀÌ Á¾·áµÇ¾úÀ»¶§ ¸Þ¸ð¸®¸¦ Ç®¾îÁÖ´Â ¸Å¿ì °£´ÜÇÑ ¿¹Á¦ÀÌ´Ù :

    delete pPointer;

    That's all there is to it.
    À̰ÍÀÌ ÀüºÎÀÌ´Ù.
    ³Ê´Â ÁÖÀDZí¾î¾ßÇÑ´Ù, ³Ê°¡ È®½ÇÇÑ pointer¸¦ ³Ñ°ÜÁÖ¾ù´ÂÁö , ¿¹¸¦µé¾î ½ÇÁ¦ Æ÷ÀÎÅͰ¡ ¸Þ¸ð¸®¸¦ ³Ê°¡ ÇÒ´çÇÑ pointerÀÌ°í ´ÜÁö ¾²·¹±â°ªÀÌ ¾Æ´ÑÁö ¸»ÀÌ´Ù
    Ç×»ó À§ÇèÇÏÁö¸¸ ¸Þ¸ð¸® ÇØÁ¦¸¦ ½Ãµµ´Â ³ÊÀÇ ÇÁ·Î±×·¥À» ¿Ïº®ÇÏ°Ô ÇÒ¼öÀÖ´Ù.

    ¿¹Á¦¸¦ ´Ù½ÃºÁº¸ÀÚ, Á»´õ ¹ßÀüÇÏ¿© ¸Þ¸ð¸®¸¦ ³¶ºñÇÏÁö ¾Ê´Â ÄÚµå·Î ¸»ÀÌ´Ù :

    #include <stdio.h>

    int *pPointer;

    void SomeFunction()
    {
    // pPointer Æ÷ÀÎÅÍ¿¡ new interger ¸¦ ¸¸µé¾îÁØ´Ù
    pPointer = new int;
  • pPointer = 25;
  • }

    void main()
    {
    SomeFunction(); // pPointer Æ÷ÀÎÅÍ¿¡ ¹«¾ð°¡¸¦ ¸¸µé¾îÁØ´Ù
    printf("Value of *pPointer:%dn", *pPointer);

    delete pPointer;
    }
    Àüü¿¡¼­ ´ÜÁö ÇѶóÀθ¸ÀÌ Ãß°¡µÇ¾ú´Ù, ÇÏÁö¸¸ À̶óÀÎÀº °¡ÀåÁß¿äÇÑ ¶óÀÎÀÌ´Ù.
    ¸¸¾à ³Ê°¡ ¸Þ¸ð¸®¸¦ ÇØÁ¦ÇÏÁö ¾Ê¾Ò´Ù¸é, ³Ê°¡ ¾Ë°íÀÖ´Â '¸Þ¸ð¸® ´©¼ö' °¡ ÀϾ°ÍÀÌ´Ù, ÀϹÝÀûÀ¸·Î ¸Þ¸ð¸® ´©¼ö°¡ °è¼Ó ÀϾ°í Àç»ýÇÏÁö ¾ÊÀ¸¸é ÇÁ·Î±×·¥ÀÌ Á¾·áµÇ±â Àü±îÁö ¸»ÀÌ´Ù.

    <<ÇÔ¼ö·Î Æ÷ÀÎÅÍ Àü´ÞÇϱâ>>
    Æ÷ÀÎÅ͸¦ ÇÔ¼öÀÎÀÚ·Î Àü´ÞÇÏ´Â ±â¼úÀº ¸Å¿ì À¯¿ëÇÏ´Ù, ¸Å¿ì½±°Ô ¸¶½ºÅÍÇÒ¼öÀÖ´Ù.
    ¸¸¾à ³Ê°¡ÇÁ·Î±×·¥¿¡¼­ ¼ö¸¦ °¡Á®°¡ 5¸¦ ´õÇÏ°í ½Í´Ù¸é, ¿ì¸®´Â ´ÙÀ½°ú°°ÀÌ ÀÛ¼ºÇÒÁöµµ ¸ð¸¥´Ù :


    #include <stdio.h>

    void AddFive(int Number)
    {
    Number = Number + 5;
    }

    void main()
    {
    int nMyNumber = 18;

    printf("My original number is %dn", nMyNumber);
    AddFive(nMyNumber);
    printf("My new number is %dn", nMyNumber);
    }

    ±×·¯³ª ¹®Á¦´Â ÀÌ Number ÂüÁ¶·Î Addfive·Î º¯¼ö¸¦ nMyNumber¸¦ ÇÔ¼ö·Î ³Ñ°ÜÁÙ¶§, º¯¼ö ±×ÀÚü°¡ ¾Æ´Ï¶ó´Â°ÍÀÌ´Ù
    ±×·±±î´ß¿¡ 'Number = Number + 5' ÀÌÁÙÀº º¹»çµÈ º¯¼ö¿¡ 5°¡ ´õÇØÁø´Ù, ¿ø·¡ º¯¼ö´Â in main() ¾È¿¡ ³²°ÜµÎ´Ï ¿µÇâÀÌ ¾ø´Ù
    ½ÇÇàÀ» ½ÃµµÇÏ¸é ¾Ë¼öÀÖ´Ù

    ÀÌ·¯ÇÑ ¹®Á¦¸¦ °¡Áö°íÀÖ´Ù, ¿ì¸®´Â Æ÷ÀÎÅ͸¦ ³Ñ°ÜµÖ¼­ ÇÔ¼ö¿¡ ±× ¸Þ¸ð¸®¸¦ À¯ÁöÇÒ¼öÀÖ´Ù, ±×·¯³ª ¿ì¸®´Â number°¡ ¾Æ´Ñ Æ÷ÀÎÅÍÀÇ numberÀÓÀ» ±â´ëÇϰíÇÔ¼ö¸¦ ¹Ù²Ü¼öÀÖ´Ù,
    À̰ÍÀº, ¿ì¸®°¡ void AddFive(int Number) À̰ÍÀ» void AddFive(int* Number) ÀÌ·¸°Ô * ¸¦ ºÙ¿© ¹Ù²Ü¼öÀÖ´Ù
    ÇÁ·Î±×·¥À» Á¶±Ý¹Ù²ã ´Ù½Ã ºÁº¸ÀÚ.
    number ÀڽŴë½Å¿¡ nMyNumberÀÇ ÁÖ¼Ò·Î ¸¸µé¾î ¿ì¸®¿¡°Ô ³Ñ°ÜÁִ°¡?
    À̰ÍÀº &±âÈ£¸¦ ºÙ¿©¼­ ÇØÁØ´Ù, ¿ì¸®°¡ ´Ù½ÃºÎ¸¦¶§ 'the address of'¶ó°í Àд´Ù

    #include <stdio.h>
    void AddFive(int* Number)
    {
    • Number = *Number + 5;
    }

    void main()
    {
    int nMyNumber = 18;

    printf("My original number is %dn", nMyNumber);
    AddFive(&nMyNumber);
    printf("My new number is %dn", nMyNumber);
    }

    ½ÃµµÇغ¸°í À̰ÍÀÌ ³ÊÀǰÍÀÓÀ» Áõ¸íÇϼ¼¿ä.
    AddFive ÇÔ¼ö¾È¿¡ Number ¾Õ¿¡ *°¡ Áß¿äÇѰ¡¿ä?
    This is needed to tell the compiler that we want to add five to the number pointed to by the variable Number, rather than add five to the pointer itself.

    ¸¶Áö¸·À¸·Î »ý°¢ÇØÁà¾ßÇÒ°ÍÀº Æ÷ÀÎÅÍ·Î ¸®ÅÏÇüÀ» ÁÖ°í½Í´Ù¸é ´ÙÀ½°ú°°ÀÌ ÇØ¾ßµÉ°ÍÀÌ´Ù :
    int * MyFunction();

    ÀÌ ¿¹Á¦´Â MyFunction ¸®ÅÏÀÌ integerÇü Æ÷ÀÎÅÍÀÌ´Ù.

    <<Ŭ·¡½º Æ÷ÀÎÅÍ>>
    À̰ÍÀº ¿©·¯°³°¡Àִ°ÍÀ» ±¸Á¶Ã¼³ª Ŭ·¡½º·Î ¹­¾î Æ÷ÀÎÅÍ·Î ÀÌ¿ëÇϴ°ÍÀÌ´Ù. class ¼±¾ðÀº ´ÙÀ½°ú°°´Ù :

    class MyClass
    {
    public:
    int m_Number;
    char m_Character;
    };
    MyClassŸÀÔ º¯¼ö¸¦ ´ÙÀ½°ú°°ÀÌ ¼±¾ðÇÑ´Ù :

    MyClass thing;
    ³Ê´Â Ç×»ó À̰ÍÀ» ¾Ë°íÀÖ¾î¾ßÇÑ´Ù, ¸¸¾à À̰ÍÀ» ÀÐÀ»¼ö¾ø´Ù¸é À§¿¡¸¦ ´Ù½Ã Àоî¾ßÇÑ´Ù.

    MyClass Æ÷ÀÎÅÍ·Î ¼±¾ðÀº ´ÙÀ½°ú°°ÀÌ ÇÑ´Ù :

    MyClass *thing;
    ÀÌ·¸°Ô ÇϸéµÈ´Ù
    ±×¸®°í, ³Ê´Â ¸Þ¸ð¸®¿Í Æ÷ÀÎÅÍ ÁÖ¼Ò¸¦ ¸Þ¸ð¸®¿¡ ³Ö¾î ÇÒ´çÇØ¾ßÇÑ´Ù :

    thing = new MyClass;
    À̰ÍÀº ¹®Á¦¸¦ °¡Á®¿Â´Ù, ¾î¶»°Ô Æ÷ÀÎÅ͸¦ ÀÌ¿ëÇÒ°ÍÀΰ¡?
    ÀÚ, ÀϹÝÀûÀ¸·Î ³Ê´Â 'thing.m_Number' ¶ó°í ¾µ°ÍÀÌ´Ù, ±×·¯³ª ³Ê´Â Á¦´ë·Î ÇÏÁö ¾Ê¾Ò´Ù, ¿Ö³Ä¸é NyClass°¡ ¾Æ´Ï¶ó Æ÷ÀÎÅÍ À̱⠶§¹®ÀÌ´Ù, ±×·¡¼­ ¿ì¸®´Â m_Number º¯¼ö¸¦ ºÒ·¯¿Àµµ·Ï ÇØº¸ÀÚ;
    À̰ÍÀº m_NumberÀ»°¡Áö°íÀÖ´Â ±¸Á¶Ã¼ÀÌ´Ù.
    ±×·¸±â ¶§¹®¿¡ ¿ì¸®´Â Á¶°Ë ´Ù¸¥ ±ÔÄ¢À» ÀÌ¿ëÇØ¾ßÇÑ´Ù
    '.'(dot) À» -> (dash µÚ¿¡ > Å©´Ù¶ó´Â ±âÈ£¸¦ ºÙÀÎ ±âÈ£) ·Î ¹Ù²Ù¾î¾ßÇÑ´Ù
    ÀÚ ¹Ù²ï ¿¹Á¦¸¦ ºÁº¸ÀÚ :

    class MyClass
    {
    public:
    int m_Number;
    char m_Character;
    };

    void main()
    {
    MyClass *pPointer;
    pPointer = new MyClass;

    pPointer->m_Number = 10;
    pPointer->m_Character = 's';

    delete pPointer;
    }

    ¹è¿­ÀÇ Æ÷ÀÎÅÍ
    ³Ê´Â ¶ÇÇÑ ¹è¿­À» °¡¸£Å°´Â ÁÖ¼Ò Æ÷ÀÎÅ͸¦ ¸¸µé¼öÀÖ´Ù, ÀÌ ¿¹Á¦¸¦ ºÁº¸ÀÚ :

    int *pArray;
    pArray = new int[6];

    À̰ÍÀº pArray Æ÷ÀÎÅ͸¦ »ý¼ºÇϰí 6°³ÀÇ ¿ä¼Ò¸¦ °¡Áø ¹è¿­ÀÇ ÁÖ¼Ò·Î ¸¸µé¾îÁØ´Ù.
    µ¿ÀûÇÒ´çÀ» ÀÌ¿ëÇÏÁö ¾Ê°í ´Ù¸¥¹æ¹ýÀ» À¸·Î ÇÒ¼öÀÖ´Ù :

    int *pArray;
    int MyArray[6];
    pArray = &MyArray[0];

    À̰ÍÀº &MyArryay[0]·Î ´ë½Å ¾´´Ù, ³Ê´Â °£´ÜÈ÷ MyArray¸¦ ¾µ¼öÀÖ´Ù.
    À̰ÍÀº ´ÜÁö ¹è¿­À» Àû¿ë½ÃŰ´Â c/c++¾ð¾îÀÇ ¹æ¹ýÀÏ»ÓÀÌ´Ù

    ÀϹÝÀûÀÎ ÇÔÁ¤Àº pArray = &Myarray; ·Î ¾²´Â°ÍÀε¥ À̰ÍÀº ¿Ã¹Ù¸£Áö ¾Ê´Â Ç¥ÇöÀÌ´Ù.
    ¸¸¾à ÀÌ·¸°Ô 썻´Ù¸é, ³Ê´Â (ŸÀÔÀ̾ø´Â)¹è¿­ÀÇ ÁÖ¼Ò¸¦ °¡¸£Å°´Â Æ÷ÀÎÅÍ·Î ½á¹ö¸±°ÍÀÌ´Ù, À̰ÍÀº ³Ê°¡ ¿øÇϴ°ÍÀ» ÇÒ¼ö¾øÀ»°ÍÀÌ´Ù.

    ¹è¿­ÀÇ Æ÷ÀÎÅÍ ÀÌ¿ëÇϱâ
    ³Ê´Â ¹è¿­ÀÇ Æ÷ÀÎÅ͸¦ °¡Áö°Ô µÇ¾ù´Ù, ÀÌÁ¦ ¾î¶»°Ô À̰ÍÀ» ÀÌ¿ëÇÒ±î?
    ÀÚ, intÇüÀÇ ¹è¿­À»°¡Áø Æ÷ÀÎÅ͸¦ ¸»Çغ¸¾Æ¶ó.
    Æ÷ÀÎÅÍ´Â ÃʱâÈ­µÈ ¹è¿­À» óÀ½ºÎÅÍ °¡Áö°íÀÕÀ»°ÍÀÌ´Ù, ¾Æ·¡ ¿¹Á¦¸¦ ºÁº¸ÀÚ :

    #include <stdio.h>

    void main()
    {
    int Array[3];
    Array[0] = 10;
    Array[1] = 20;
    Array[2] = 30;

    int *pArray;
    pArray = &Array[0];

    printf("pArray points to the value %dn", *pArray);
    }
    ¸¸µé¾îÁø Æ÷ÀÎÅ͸¦ º¯¼ö¸¦ °¡Áø ¹è¿­·Î ¿È±â·Á¸é, ¿ì¸®´Â pArray++ ¶ó°í ÇϸéµÈ´Ù.
    ¿ì¸®´Â ¶ÇÇÑ ³Ê´Â ¾Æ¸¶ ÃßÃøÇÒ¼öÀÕÀ»°ÍÀÌ´Ù, ÀÌÁ¦ pArryay + 2 ¸¦ ÃßÃøÇÒ¼öÀÖÀ»°ÍÀÌ´Ù, À̰ÍÀº ¹è¿­ÀÇ ¿ä¼Ò¸¦ µÎ¹ø¾ÕÀ¸·Î ¿È°ÜÁÙ°ÍÀÌ´Ù.
    ¿ì¸®°¡ ÁÖÀÇÇØ¾ßÇÒ°ÍÀº ¹è¿­ÀÇ ¹üÀ§ (¿¹Á¦¿¡¼­´Â 3)À» ¹þ¾î³ª¸é ¾ÈµÈ´Ù´Â°ÅÀÌ´Ù, ¿Ö³ÄÇϸé ÄÄÆÄÀÏ·¯´Â Æ÷ÀÎÅ͸¦¾µ¶§ ¹è¿­ÀÇ ³¡¿¡ ¿Ô´ÂÁö üũÇÏÁö ¸øÇϱ⠶§¹®ÀÌ´Ù, ±×·¯¸é ³Ê´Â ½±°Ô ÀÌ ¹æ¹ýÀ» ¾µ¼öÀÖÀ»°ÍÀÌ´Ù. ¿¹Á¦¸¦ ´Ù½Ã ºÁº¸ÀÚ, ¿ì¸®°¡ ÁöÁ¤ÇÑ 3°³ÀÇ º¯¼ö¸¦ Ãâ·ÂÇØÁØ´Ù :


    #include <stdio.h>

    void main()
    {
    int Array[3];
    Array[0] = 10;
    Array[1] = 20;
    Array[2] = 30;

    int *pArray;
    pArray = &Array[0];

    printf("pArray points to the value %dn", *pArray);
    pArray++;
    printf("pArray points to the value %dn", *pArray);
    pArray++;
    printf("pArray points to the value %dn", *pArray);
    }

    º¯¼ö¸¦ »¬¼öµµÀÖ´Ù, ÀϹÝÀûÀÎ Æ÷ÀÎÅÍÀÇ pArray·ÎºÎÅÍ pArray - 2 ´Â 2¹øÂ° Àü ¿ä¼Ò¸¦ °¡¸£Å²´Ù.
    ¸¸µé¼öÀÖ´Ù, ÇÏÁö¸¸ ³Ê´Â ´õÇϰųª »©´Â°ÍÀº Æ÷ÀÎÅÍÀÌÁö º§·ù°¡ ¾Æ´Ï´Ù.
    Æ÷ÀÎÅÍÀÇ ¸îÁ¶ÀÛµé°ú ¹è¿­ÀÇ »ç¿ëÀº ´ëºÎºÐ ¹«¾ð°¡¸¦Ã£À»¶§ ¹Ýº¹¹®¿¡¼­ »ç¿ëµÈ´Ù,

    ¶ÇÇÑ ³Ê´Â Æ÷ÀÎÅÍÀÇ º§·ù °¡Áú¼öÀÖ´Ù, ¿¹¸¦µé¾î int* pNumberSet,
    ³Ê´Â ¹è¿­À» ´Ù·ç¾îº¸¾ÒÀ»°ÍÀÌ´Ù, ¿¹¸¦µé¾î pNumberSet[0] ´Â *pNumberSet¿Í °°Àº ¶æÀÌ´Ù, ±×¸®°í pNumberSet[1]´Â (pNumberSet + 1) ¿Í °°Àº ¶æÀÌ´Ù.

    ¹è¿­¿¡¼­ ¸¶Áö¸·À¸·Î Á¶½ÉÇØ¾ßÇÒ°ÍÀº, ¸¸¾à ³Ê°¡ ¹è¿­À» ÀÌ¿ëÇϱâÀ§ÇØ newŰ¿öµå·Î ¸Þ¸ð¸®ÇÒ´çÀ» ÇØÁÖ¾ú´Ù¸é ¿¹Á¦¿Í°°ÀÌ ÇØÁÖ¾î¾ßÇÑ´Ù :

    int *pArray;
    pArray = new int[6];
    ¾Æ¸¶ ¸Þ¸ð¸®¸¦ ´ÙÀ½°ú°°ÀÌ ÇØÁ¦ÇØÁÖ¾î¾ßÇÑ´Ù :

    delete[] pArray;
    [] µÚ¸¦ Á¦°ÅÇØÁְڴٴ°ÍÀÌ´Ù.
    ÄÄÆÄÀÏ·¯¿¡°Ô Áö¿ì´Â°ÍÀÌ ¹è¿­À̰í ÇϳªÀÇ item¾Æ´Ï¶ó´Â°ÍÀ» ¸»ÇØÁØ´Ù.
    ³Ê°¡ À̹æ¹ýÀ» ²ÀÀÌ¿ëÇØ¾ß¸¸ÇÑ´Ù ¸¸¾à ±×·¸Áö ¾Ê´Â´Ù¸é ³Ê´Â ¸Þ¸ð¸® ´©¼ö¸¦ ÀÏÀ¸Å°°Ô µÉ°ÍÀÌ´Ù

    <<Last Words>>
    ¸¶Áö¸· ¾Ë¸² : ³Ê´Â ¾Æ¸¶ newŰ¿öµå¸¦ ÀÌ¿ëÇØ ÇÒ´çÇÏÁö ¾Ê¾Ò´õ¶ó¸é ¸Þ¸ð¸® ÇØÁ¦¸¦ ÇÏÁö¾Ê¾ÆµµµÈ´Ù, ´ÙÀ½°ú°°ÀÌ ¸»ÀÌ´Ù :

    void main()
    {
    int number;
    int *pNumber = number;

    delete pNumber; // wrong - *pNumber´Â new Ű¿öµå·Î ÇÒ´çµÇÁö ¾Ê¾Ò´Ù
    }

    << ÄÚ¸ÇÆ® Áú¹®°ú FAQ >>
    Áú¹® : new¿Í delete¸¦ ¾²·Á´Âµ¥ ¿Ö 'symbol undefined' ¿¡·¯°¡ ³ª³ª¿ä?

    ´äº¯ : À̰ÍÀº ´ëºÎºÐÀÇ ¿øÀÎÀº ³ÊÀÇ ¼Ò½ºÄڵ尡 cÆÄÀÏÀΰæ¿ì¿¡ ÀϾ´Ï´Ù. new ¿Í delete ¿¬»êÀÚ´Â c++ÀÇ Æ¯Â¡ÀÔ´Ï´Ù
    À̰ÍÀ» º¸Åë °¡´ÉÇÑ ÇüÅ·Π°íÄ¡±â À§Çؼ­´Â ³ÊÀÇ ¼Ò½ºÆÄÀÏÀÇ È®ÀåÀÚ¸¦ .cpp·Î ¹Ù²Ù¾îÁÖ¸é µË´Ï´Ù.


    Áú¹® : new¿Í mallocÀÌ ¾î¶»°Ô ´Ù¸£³ª¿ä?

    ´äº¯ : newŰ¿öµå´Â c++ ¹®¹ýÀÔ´Ï´Ù, ±×·¡¼­ µ¿Àû¸Þ¸ð¸®¸¦ ¸¸µå´Â Ç¥Áعæ¹ý(À̿ܿ¡ À©µµ¿ì ¸Þ¸ð¸®ÇÒ´ç ·çÆ¾À» ÀÌ¿ëÇÏ´Â)ÀÌ´Ù
    ³Ê´Â c c++ ÀÀ¿ëÇÁ·Î±×·¥¿¡¼­ malloc ÀÇ ÀÌ¿ëÀº Àý´ëÀûÀ¸·Î ÇÊ¿äÇÏÁö ¾Ê´Â´Ù
    ¿Ö³ÄÇϸé mallocÀº c++ÀÇ °´Ã¼ÁöÇâÀûÀΠƯ¡ÀÌ ¾Æ´Ï±â ¶§¹®ÀÌ´Ù, À̰Í(new)À» ÀÌ¿ëÇϸé Ŭ·¡½ºµéÀ» ÇÒ´çµÈ ¸Þ¸ð¸®´Â Ŭ·¡½º»ý¼ºÀÚ¸¦ È£ÃâÇØ ¿¹¹æÇÑ´Ù, ´ÜÁö ÀÌÇϳªÀÇ ¿¹¿¡¼­µµ ¹®Á¦°¡ ÀϾ´Ù.
    malloc °ú free»ç¿ë½Ã ÀϾ´Â ¹®Á¦ÀÇ °á°ú¿¡¼­ ó·³ ±×°Í(malloc)ÀÇ ¸ñÀû°ú Àǵµ´Â ¾µ¸ð¾ø¾îÁ³±â¶§¹®¿¡ ÀÌ ±Û¿¡¼­ ±×°Í¿¡ ´ëÇÑ ÀÚ¼¼ÇÑ À̾߱âµéÀ» ´Ù·çÁö ¾Ê´Â´Ù, ±×¸®°í ³ª´Â Àú°ÍÀ» »ç¿ëÇÏ´Â À¯Á®µé¿¡°Ô ¾ðÁ¦µçÁö °¡´ÉÇÏ´Ù°í ¿ë±â¸¦ ÁÖ°í½Í´Ù


    Áú¹® : free ¿Í delete¸¦ °°ÀÌ »ç¿ëÇØµµ µÇ³ª¿ä?

    ´äº¯ : ³Ê´Â ¸Þ¸ð¸®¸¦ ÇÒ´çÇÑ ·çƾ°ú µ¿µîÇÏ°Ô ¸Þ¸ð¸®¸¦ ÇØÁ¦ÇØÁÖ¾î¾ßÇÑ´Ù.
    ¿¹¸¦µé¸é, free´Â ¿ÀÁ÷ malloc·Î ÇÒ´çÇÑ ¸Þ¸ð¸®¸¦ ÀÌ¿ëÇÒ¶§, delete ´Â ¿ÀÁ÷ new·Î ÇÒ´çÇÑ ¸Þ¸ð¸®¸¦ ÀÌ¿ëÇÒ¶§ µîµî.

    ÂüÁ¶
    ÂüÁ¶¿¡ ´ëÇØ À̱ÛÀº ¾î´ÀÁ¤µµ±îÁö¸¸ ÀûÇôÁ®ÀÖ´Ù
    ±×·¯³ª, ¸¹Àº»ç¶÷µéÀÌ Àаí À̰Ϳ¡ ´ëÇØ Áú¹®Çϴ°ÍÀ» º¸¾Ò´Ù, ³ª´Â ±×°Í¿¡ ´ëÇØ °£´ÜÈ÷ À̾߱âÇØº¼°ÍÀÌ´Ù.
    ÂüÁ¶´Â Æ÷ÀÎÅÍ·Î ¸¹Àº ¹ÐÁ¢Çϰí Á»´õ °£´ÜÇÑ ´ë¾ÈÁß¿¡ ÇϳªÀÌ´Ù
    ¸¸¾à º¯¼ö¸í ¾ÕÂÊ¿¡ ¾²¿©Áø´Ù¸é, ³ª´Â & ¸¦ 'the address of' ¶ó°í ÀÐÁö ¾Ê°í ¼±¾ðÀ̶ó°í ¾ð±ÞÇÑ´Ù
    À̰ÍÀº 'a reference to' ¶ó°í Àд´Ù


    int& Number = myOtherNumber;
    Number = 25;

    ÂüÁ¶´Â myOtherNumberÀÇ Æ÷ÀÎÅÍ¿Í °°´Ù, ÀÚµ¿À¸·Î ¿ªÂüÁ¶°¡ µÇ´Â°ÍÀ» »©°í¸»ÀÌ´Ù, ±×¸®°í À̰ÍÀº Æ÷ÀÎÅÍ Å¸ÀÔº¸´Ù ½ÇÁ¦Å¸ÀÔÀÌ´Ù.
    Æ÷ÀÎÅ͸¦ ÀÌ¿ëÇÏ¿© ¶È°°ÀÌ ¸¸µç ÄÚµåÀÌ´Ù :

    int* pNumber = &myOtherNumber;
    *pNumber = 25;

    Æ÷ÀÎÅÍ¿Í ÂüÁ¶ÀÇ ´Ù¸¥ Â÷ÀÌÁ¡À̶ó¸é ÂüÁ¶´Â Æ÷ÀÎÅÍó·³ ³ªÁß¿¡ ¼±¾ðÀ» ¹Ù²ÙÁö¾Ê´Â 'ÀçÁöÁ¤'ÇÏÁö ¾Ê¾ÆµµµÈ´Ù,

    ¿¹¸¦µé¾î ´ÙÀ½ÄÚµåÀÇ °á°ú´Â '20'ÀÌ ³ª¿Ã°ÍÀÌ´Ù :

    int myFirstNumber = 25;
    int mySecondNumber = 20;
    int &myReference = myFirstNumber;

    myReference = mySecondNumber;

    printf("%d", myFristNumber);
    Ŭ·¡½ºÀ϶§, º§·ù´Â ´ÙÀ½°ú°°Àº ±¸Á¶·Î ÂüÁ¶·Î º¯¼ö¸¦ ¼³Á¤ÇÒ¼öÀÖ´Ù :

    CMyClass::CMyClass(int &variable) : m_MyReferenceInCMyClass(variable)
    {
    // Äڵ带 ¿©±â¿¡ ÀÛ¼ºÇÑ´Ù
    }


    <<¿ä¾à>>
    ÀÌ ÅäÇÈÀº ±âÃʸ¦ ¸¶½ºÅÍÇÒ¼öÀÖ´Ù, ±×·¡¼­ ÃÖ¼ÒÇÑ µÎ¹øÀº ºÁ¾ßÇÑ´Ù : ¸¹Àº »ç¶÷µéÀÌ °ð ÀÌÇØÇÒ¼ö¾øÀ»°ÍÀÌ´Ù.¿©±â°¡ ÇÙ½ÉÀÌ´Ï º¸°í ¶ÇºÁ¶ó:

    Æ÷ÀÎÅÍ´Â ¸Þ¸ð¸®¿µ¿ªÀÇ ÁÖ¼Ò¸¦ ´ã´Â º¯¼öÀÌ¸ç º¯¼öÀ̸§¾Õ¿¡ * ¸¦ ºÙÀ̸éµÈ´Ù (¿¹, nt *number)
    º¯¼öÀÇ ÁÖ¼Ò¸¦ ¾ò°í½ÍÀ»¶§´Â & ±âÈ£¸¦ ¾Õ¿¡ ºÙÀ̸éµÈ´Ù (¿¹, pNumber = &my_numbe).
    * ±âÈ£´Â ¼±¾ðÀ϶§¸¦ Á¦¿ÜÇϰí (int *number ¿Í°°Àº) 'the memory location pointed to by' ¶ó°í Àд´Ù.
    & ±âÈ£´Â, ¼±¾ðÀ϶§¸¦ Á¦¿ÜÇϰí(int &number¿Í°°Àº) 'the address of' ¶ó°í Àд´Ù.
    ¸Þ¸ð¸®¸¦ ÇÒ´çÇÒ¶§´Â 'new'Ű¿öµå¸¦ ÀÌ¿ëÇÒ¼öÀÖ´Ù
    Pointers MUST be of the same type as the variables you want them to point to, so int *number will not point to a MyClass.
    ³Ê´Â ÇÔ¼ö·Î Æ÷ÀÎÅ͸¦ ³Ñ±æ¼öÀÖ´Ù
    ³Ê´Â ÇÒ´çÇÑ ¸Þ¸ð¸®¸¦ ÇØÁ¦ÇÒ¶§ 'delete'Ű¿öµå¸¦ ÀÌ¿ëÇØ¾ßÇÑ´Ù
    ÀÌ¹Ì Á¸ÀçÇÏ´Â ¹è¿­ÀÇ ÁÖ¼Ò¸¦¾ò°í½Í´Ù¸é &array[0].
    µ¿ÀûÇÒ´çÇÑ ¹è¿­À» ÇØÁ¦ÇÏ°í ½Í´Ù¸é delete[] ¸¦ ÀÌ¿ëÇØ¾ßµÈ´Ù, ±×³É delete¸¦ ½á¼± ¾ÈµÈ´Ù.

    À̰ÍÀº Æ÷ÀÎÅÍ¿¡ ´ëÇØ Àý´ëÀûÀ¸·Î ¿Ïº®ÇÑ °¡À̵å´Â ¾Æ´Õ´Ï´Ù, ¾à°£ÀÇ Á¤º¸¿Í º¸´Ù ÀÚ¼¼ÇÑ ÀÌÁ߯÷ÀÎÅͿͰ°Àº°ÍÀº Àß³ªÅ¸³ªÀÖÁö¾Ê½À´Ï´Ù.
    ¶ÇÇÑ ³»°¡¼±ÅÃÇÏÁö ¾ÊÀº°ÍµéµµÀÖ½À´Ï´Ù, ÇÔ¼öÆ÷ÀÎÅͿͰ°Àº°Íµé, ³ª´Â ³Ê¹« ¸¹ÀÌ º¹ÀâÇÑ Ãʺ¸ÀÚ±ÛÀÌ ¾Æ´Ò±î »ý°¢ÇÑ´Ù
    ±×¸®°í À̰ÍÀ» ÃæºÐÈ÷ µå¹°°í ¶ÇÇÑ Ãʺ¸Àڵ鿡°Ô ÀÚ¼¼È÷ ´Ù·ç´Â°ÍÀº OTLÀϰÍÀÌ´Ù

    À̰ÍÀÌ´Ù´Ù! ÇÁ·Î±×·¥À» ½ÇÁ¦ µ¹·Áº¸°í ¸ðµç ¿¹Á¦¸¦ ³ÊÀǰÍÀ¸·Î ¸¸µé¾î¶ó :)

    ¹ø¿ªÇѸ¶µð
    ½±´Ù°í ´ýº²´Ù Orz
    ³»¿ëÀº.. ´Ù±×Á®±×·±³»¿ë..¹Ì¾È횽µé..ÇÐÇÐ

    Ãâó ÇÁ°¶: Ä¿ÇôÔ
    http://kr.dcinside1.imagesearch.yahoo.com/zb40/zboard.php?id=programming&page=1&sn1=&divpage=4&banner=&sn=off&ss=on&sc=off&select_arrange=headnum&desc=asc&no=21041
    EmailÀ» ±âÀÔÇϸé, ´ñ±ÛÀÌ ¸ÞÀÏ·Î Àü´ÞµË´Ï´Ù.