1581, 4/80 ȸ¿ø°¡ÀÔ  ·Î±×ÀΠ 
   ±«µµjs
   http://this age's last hacker..=JS..
   8¹ø°c°­ÁÂ

http://www.hackerschool.org/HS_Boards/zboard.php?id=Free_Lectures&no=222 [º¹»ç]


- goto¹®




goto¹®Àº »ç½Ç °­Á¿¡ ³ÖÀ¸·Á°í ÇÏÁö ¾Ê¾ÒÁö¸¸, ±×·¡µµ CÀÇ ÀϺκРÀ̹ǷΠ¼³¸íÀº µå¸®ÁÒ.

goto¹®Àº ƯÁ¤ ¶óº§·Î ¶Ù¾î ³Ñ¾î ¹ö¸®´Â ±â´ÉÀ» ÇÕ´Ï´Ù.




»ç¿ë¹ýÀº...




goto ¶óº§;




ÀÌ·¸°Ô »ç¿ëÇÏÁÒ. ¿©±â¼­ ¶óº§Àº °°Àº ÇÔ¼ö ³»¿¡ Á¸ÀçÇØ¾ß ÇÕ´Ï´Ù. ¶óº§ÀÇ Á¤ÀÇ´Â ÀÌ·¸°Ô ÇÏÁÒ.




¶óº§¸í:




¶óº§¸íÀº ÇÔ¼ö¸íÀ̳ª º¯¼ö¸í°ú´Â °ãÃĵµ »ó°ü ¾ø°í ¼­·Î ÇÔ¼ö°¡ ´Ù¸£´Ù¸é ¶óº§¸íÀÌ °ãÃĵµ µÊ´Ï´Ù.

ÇÏÁö¸¸ °°Àº ÇÔ¼ö ³»¿¡¼­ ¶óº§¸íÀÌ °ãÃļ­´Â ¾ÊµÇ¸ç, ¶óº§¸íµµ ½Éº¼°ú °°Àº ±ÔÄ¢¿¡ µû¶ó Áö¾îÁ®¾ß ÇÏÁÒ. Áï ¶óº§¸íÀÇ Ã¹¹®ÀÚ´Â ¹Ýµå½Ã ¿µ¹®ÀÚ ¶Ç´Â ¾ð´õ½ºÄÚ¾î(_)°¡ ¿Í¾ß ÇÏ°í, ±× µÚ·Î´Â ¿µ¹®ÀÚ, ¼ýÀÚ, ¾ð´õ½ºÄھ ¿Ã¼ö ÀÖ´Ù´Â °ÍÀÌÁÒ.




¶ÇÇÑ°¡Áö ¶óº§À» Á¤ÀÇÇÒ¶§´Â µÚ¿¡ :¸¦ ºÙÀÌÁö¸¸,

goto¹®¿¡¼­ ¶óº§À» ¾µ¶§´Â ÀÌ°É ¾²¸é ¾ÊµÈ´Ù´Â °Í ÀÔ´Ï´Ù.




¿¹¸¦ µé¾î




Label:

ÀÌ·± ¶óº§ÀÌ ÀÖÀ»¶§




goto Label:;

ÀÌ·¸°Ô Çؼ­´Â ¾ÊµÇ°í,




goto Label;

ÀÌ·¸°Ô ÇØ¾ß ÇÑ´Ù´Â °Í ÀÔ´Ï´Ù.

goto¹®Àº C°°Àº ±¸Á¶È­ ÇÁ·Î±×·¡¹Ö ¾ð¾î ¿¡¼­´Â °ÅÀÇ ¾µ¸ð°¡ ¾ø½À´Ï´Ù. ¶ÇÇÑ ´ëºÎºÐÀÇ C ÇÁ·Î±×·¡¸ÓµéÀº goto¹®ÀÇ »ç¿ëÀ» ²¨·ÁÇÏ°í ÀÖ½À´Ï´Ù. ÀÌÀ¯´Â goto¹®À» ¸¹ÀÌ »ç¿ëÇÒ °æ¿ì ÇÁ·Î±×·¥À» º¸±â°¡ Èûµé¾îÁö°í º¹ÀâÇØ º¸À̱⠶§¹®ÀÌÁÒ.

±×·¯¹Ç·Î µÇµµ·Ï goto¹®ÀÇ »ç¿ëÀº ÁÙÀÌ°í, ÇÔ¼ö³ª C¾ð¾îÀÇ °­·ÂÇÑ Á¦¾î¹®µéÀ» »ç¿ëÇØ ÇÁ·Î±×·¡¹ÖÀ» ÇÏ´Â ½À°üÀ» µé¿©¾ß ÇÕ´Ï´Ù.




- ÇÔ¼ö¿¡ °ª Àü´Þ.




¿©·¯ºÐÀÌ ¾î¶² ÇÔ¼ö¸¦ ¸¸µç´Ù°í ÇսôÙ. ±× ÇÔ¼ö´Â printf¿Í °°ÀÌ ¾î¶² ³»¿ëÀ» È­¸é¿¡ Ãâ·ÂÇÏ´Â ÇÔ¼öÀÌÁÒ. ±×·±µ¥ È­¸é¿¡ ¹«¾ð°¡¸¦ Ãâ·ÂÇϱâ À§Çؼ± ±× Ãâ·ÂÇÒ ³»¿ëÀ» Àü´Þ¹Þ¾Æ¾ß °ÚÁÒ? ¾î¶»°Ô Çϸé Àü´Þ¹ÞÀ»¼ö ÀÖÀ»±î¿ä?

¹Ù·Î ±× ¹æ¹ý¿¡ ´ëÇؼ­ ÀÚ¼¼È÷ ¾Ë¾Æº¸µµ·Ï ÇÏÁÒ.

Àú¹ø 2ȸ¶§ ÇÔ¼ö¿¡ ´ëÇØ ¹è¿ï¶§ Àμö¶ó´Â °ÍÀÌ ÀÖ¾ú½À´Ï´Ù. ±×¶§ Àμö´Â ÇÔ¼ö°¡ ¾î¶² 󸮸¦ ÇÒ¶§ ÇÊ¿äÇؼ­ Àü´Þ¹ÞÀ» µ¥ÀÌÅͶó°í ÇßÁÒ. ÀÌ Àμö¸¦ ÅëÇؼ­ ÇÔ¼ö°¡ °ªÀ» Àü´Þ¹ÞÀ»¼ö ÀÖ½À´Ï´Ù.




(1) Àμö°¡ Á¤È®È÷?




Àμö¿¡ ´ëÇØ Á¤È®È÷ ¸»ÇÏÀÚ¸é ÇÔ¼ö¿¡¼­ °ªÀ» Àü´Þ¹Þ´Âµ¥ ¾²ÀÌ´Â º¯¼ö¸¦ ¸»ÇÕ´Ï´Ù. Áï º¯¼öÀÇ ÀÏÁ¾ÀÌÁÒ. ¾Æ´Ï ÀÏÁ¾ÀÌ ¾Æ´Ï°í º¯¼ö¶ó°í »ý°¢Çϼ¼¿ä. ´Ü ÇÔ¼ö ½ÃÀ۽ÿ¡ Àü´Þ¹ÞÀ» °ªÀÌ µé¾î°¡°Ô µÊ´Ï´Ù.




(2) Àμö ¸¸µé±â.




Àμö´Â ¾î¶»°Ô ¸¸µé±î¿ä? Àú¹ø 2ȸ¶§ ÇÔ¼ö ¸¸µå´Â ¹æ¹ý¿¡ ³ª¿Í ÀÖ´ø°Íó·³ ÇÔ¼öÀ̸§ ¿·¿¡ ÀÖ´Â ()¾È¿¡ Àμö¸¦ ³ª¿­ÇØ ÁÖ¸é µÊ´Ï´Ù. ()¾È¿¡ ¸¶Ä¡ º¯¼ö¸¦ ¼±¾ðÇϵíÀÌ Àμö¸¦ ¸¸µé¾î ÁÖ¸é µÇÁÒ.

(Àμö°¡ º¯¼ö´Ï±î ´ç¿¬ÇÑ °ÅÁÒ?)

¿¹¸¦ µé¾î ¾Æ¹« °ªµµ ¸®ÅÏÇÏÁö ¾Ê°í, Àμö´Â Á¤¼öÇüÅ a¿Í,b¸¦ °¡Áø func¶ó´Â ÇÔ¼ö´Â




void func(int a, int b)

{

   .

   .

   .

}

ÀÌ·±½ÄÀ¸·Î ¸¸µé¼ö ÀÖ°ÚÁÒ?




(3) ÀμöÀÇ »ç¿ë




ÀÌÁ¦ Àμö°¡ º¯¼ö¶ó´Â°Ç ¾Ë°í °è½ÃÁÒ? ±×·¯¹Ç·Î Àμö »ç¿ëÀº º¯¼ö¿Í ¶È°°´Ù´Â °Íµµ ¾Æ½Ã°ÚÁÒ? ¹¹ ´õÀÌ»ó ¼³¸íµå¸± °ÍµÎ ¾ø±º¿ä. ±×·³ Áß¿äÇÑ°Í ÇÑ°¡Áö ¸»¾¸µå¸®ÁÒ.




¿ì¼± ¿¹Á¦¸¦ º¸¼¼¿ä.







/* ÆÄÀÏ À̸§     : C8-3.C

   ÇÁ·Î±×·¥ ³»¿ë : ÇÔ¼ö ¿¹Á¦ */

#include <stdio.h>

void func(int data)

{

   data=10;

}

void main()

{

   int var=1;

   func(var);

   printf("%d\n",var);

}

ÀÌ ¿¹Á¦¸¦ Àß º¸¼¼¿ä.

¿©±â¼­ mainÇÔ¼ö¿¡´Â varÀ̶õ º¯¼ö°¡ ÀÖÁÒ? ±×¸®°í ±× º¯¼ö¿¡ ÃʱⰪÀ¸·Î 1À» ÁÖ¾úÁÒ.

±×·±´ÙÀ½ func¸¦ È£ÃâÇߴµ¥, Àμö·Î varÀ̶õ º¯¼ö¸¦ ÁÖ¾úÁÒ? ±×·³ funcÇÔ¼ö¸¦ º¸¼¼¿ä. funcÇÔ¼ö¿¡´Â data¶ó´Â Àμö°¡ Àִµ¥ ÀÌ ÇÔ¼ö È£Ãâ½Ã¿¡ varÀ̶õ º¯¼ö¿¡´Â 1ÀÌ µé¾îÀÖ¾úÀ¸¹Ç·Î

data¿¡µµ 1ÀÌ µé¾î°©´Ï´Ù. func¿¡¼­´Â data¸¦ 10À¸·Î ¹Ù²Ù°í ÀÖ±º¿ä.

±×·³ ÀÌ·¸°Ô data¸¦ 10À¸·Î ¹Ù²å´Âµ¥, mainÇÔ¼öÀÇ varÀ̶õ º¯¼öµµ 10À¸·Î ¹Ù²ð±î¿ä? ÀÌ ÇÁ·Î±×·¥À» ½ÇÇàÇØ º¸½Ã¸é ¾Æ½Ã°ÚÁö¸¸ ¹Ù²îÁö ¾Ê½À´Ï´Ù. ÇÔ¼ö È£Ãâ½Ã¿¡ º¯¼ö¸¦ Àμö·Î ÁÖ¸é ´ÜÁö

º¯¼ö¿¡ µé¾îÀÖ´Â °ªÀ» º¹»çÇؼ­ Àü´ÞÇØ ÁÙ »ÓÀÌÁÒ. ±×·¯¹Ç·Î ¹Ù²îÁö ¾Ê½À´Ï´Ù. ÀÌ·¸°Ô ÇÔ¼ö¿¡ °ª Àü´Þ½Ã º¯¼ö¿¡ µé¾îÀÖ´Â °ªÀ» ±×³É º¹»çÇؼ­ Àü´ÞÇØ Áִ ȣÃâ ¹æ¹ýÀ» Call by value¶ó°í ÇÕ´Ï´Ù.




Previous:switch ¹®, for ¹®

Next:¹è¿­




- ¹è¿­

¹è¿­Àº Àú¹ø¿¡ ¹®ÀÚ¿­À» ¹è¿ï¶§ ¹®Àڹ迭 ¶§¹®¿¡ °£·«È÷ ¼³¸í µå¸° ÀûÀÌ ÀÖ½À´Ï´Ù.

À̹ø¿£ ±× ¹è¿­¿¡ ´ëÇØ Á»´õ ÀÚ¼¼È÷ ¹è¿öº¸µµ·Ï ÇÏ°Ú½À´Ï´Ù. ¹è¿­À̶õ µ¥ÀÌÅÍ ±¸Á¶ÀÇ Çϳª·Î µ¥ÀÌÅ͵éÀ» ÀÏÁ¤ ¼ö ¸¸Å­ ´Ã¾î³õÀº ±¸Á¶¶ó°í »ý°¢ÇÏ½Ã¸é µÊ´Ï´Ù. À̶§ °¢°¢ÀÇ µ¥ÀÌÅ͸¦ ¹è¿­ÀÇ ¿ø¼Ò¶ó°í ÇÕ´Ï´Ù.

¹è¿­Àº ¸¹Àº µ¥ÀÌÅ͸¦ °ü¸®ÇÒ¶§ ÆíÇÏÁÒ.

(1) ¹è¿­ÀÇ ¼±¾ð




¹è¿­Àº º¯¼ö¿Í ¸¶Âù°¡Áö·Î »ç¿ëÀü¿¡ ¼±¾ðÇØ¾ß ÇÕ´Ï´Ù. ¼±¾ðÀº ´ÙÀ½°ú °°ÀÌ ÇÕ´Ï´Ù.




µ¥ÀÌÅÍÇüÅ ¹è¿­¸í[¹è¿­Å©±â];




ÀÌ·¸°Ô ÇÏÁÒ. ¿©±â¼­ µ¥ÀÌÅÍ ÇüÅ´ ¹è¿­¿¡ ÀúÀåÇÒ µ¥ÀÌÅÍ¿¡ ÇüÅÂÀÌ°í, ¹è¿­¸íÀº ±× ¹è¿­À» »ó¡ÇÏ´Â ½Éº¼, ¹è¿­ Å©±â´Â ¸î°³ÀÇ µ¥ÀÌÅ͸¦ ´Ã¾î³õÀ» °Í ÀÎÁö¸¦ Á¤ÇÏ´Â °Í ÀÔ´Ï´Ù. ¿¹¸¦ µé¾î Á¤¼ö ÇüÅÂÀÇ µ¥ÀÌÅ͸¦ 10°³ ´Ã¾î³õÀº Array¶ó´Â ¹è¿­Àº




int Array[10];




ÀÌ·¸°Ô ¼±¾ðÇÕ´Ï´Ù.




(2) ¹è¿­ÀÇ »ç¿ë




¹è¿­À» ¼±¾ðÇßÀ¸¸é »ç¿ë¹ýµµ ¾Ë¾Æ¾ß °ÚÁÒ? ¹è¿­ »ç¿ëÀº




¹è¿­¸í[÷ÀÚ] = °ª;




º¯¼ö = ¹è¿­¸í[÷ÀÚ];




ÀÌ·± ½ÄÀ¸·Î »ç¿ëÇÕ´Ï´Ù.

¿©±â¼­ ÷ÀÚ´Â ¹è¿­ÀÇ ´Ã¾î³õÀº µ¥ÀÌÅÍÁß ¸î¹ø° ¿ø¼Ò¸¦ »ç¿ëÇÒ °ÇÀÎÁö¸¦ Á¤ÇÏ´Â °Í ÀÔ´Ï´Ù. ±×¸®°í ÷ÀÚÀÇ ½ÃÀÛÀº 0ºÎÅͶó´Â °ÍÀ» ±â¾ïÇϼ¼¿ä.




¿¹¸¦ µé¾î ¾Æ±î Array¶ó´Â ¹è¿­ÀÇ Ã¹¹ø° ¿ø¼Ò¿¡ 10À» ³ÖÀ»¶§´Â




Array[0]=10;




ÀÌ·¸°Ô ÇÏ´Â °ÍÀÌÁÒ. (÷ÀÚÀÇ ½ÃÀÛÀÌ 0À̹ǷΠù¹ø° ¿ø¼ÒÀÇ Ã·ÀÚ´Â 0)




(3) ¹è¿­ÀÇ ÃʱⰪ




º¸Åë º¯¼öµéÀº ¼±¾ðÇÒ¶§ ÃʱⰪÀ» ÁÙ¼ö ÀÖ½À´Ï´Ù. ±×·±µ¥ ¹è¿­¿¡ ÃʱⰪÀ» ÁÙ¼ø ¾øÀ»±î¿ä?

´ç¿¬È÷ ÇÒ¼ö ÀÖÁÒ..! ±×·±µ¥ ÀÏ¹Ý º¯¼öÀÇ ÃʱⰪÀ» ÁÖ´Â °Íº¸´Ù Á» º¹ÀâÇÕ´Ï´Ù.

¹è¿­ÀÇ ÃʱⰪÀ» ÁÖ´Â ¹æ¹ýÀº




µ¥ÀÌÅÍÇüÅ ¹è¿­¸í[¹è¿­Å©±â]

             = { 1¹ø° ¿ø¼ÒÀÇ ÃʱⰪ, 2¹ø° ¿ø¼ÒÀÇ ÃʱⰪ, ... };

ÀÌ·¸°Ô ÇÏ¸é µÊ´Ï´Ù.

Áï {}¾È¿¡ °¢ ¿ø¼ÒÀÇ ¼ø¼­´ë·Î Ãʱ⠰ªÀ» Àû¾îÁÖ¸é µÇ´Â °ÍÀÌÁÒ.

¿¹¸¦ µé¾î ¾Æ±î Array¹è¿­¿¡ 1ºÎÅÍ 10±îÁöÀÇ ÃʱⰪÀ» ³Ö¾î ¼±¾ðÇϸé







int Array[10] = { 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 };




ÀÌ·¸°Ô µÊ´Ï´Ù. ÀÌ·¸°Ô Çϸé Array[0]¿¡´Â 1ÀÌ, Array[1]¿¡´Â 2°¡... Array[9]¿¡´Â 10ÀÌ. ÀÌ·±½ÄÀ¸·Î µé¾î°©´Ï´Ù. ¹è¿­À» ÃʱⰪÀ» Á־ ¼±¾ðÇÒ¶§´Â ¹è¿­Å©±â¸¦ »ý·«Çصµ µÊ´Ï´Ù.




Áï À§¿¡°ÍÀº




int Array[] = { 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 };




ÀÌ·¸°Ô¸¸ ÇØ Á൵ µÈ´Ù´Â °ÍÀÌÁÒ. ÀÌ·¸°Ô ÇØ ÁÖ¸é ÃʱⰪÀÌ 10°³À̹ǷΠÀÚµ¿À¸·Î ¹è¿­Å©±â¸¦ 10À¸·Î ÁöÁ¤ÇØ ÁÜ´Ï´Ù. ÇÏÁö¸¸ ÃʱⰪÀÌ ¾øÀ»¶© ¹Ýµå½Ã Å©±â¸¦ ÁöÁ¤ÇØ¾ß ÇÕ´Ï´Ù.




Áï




int Array[];




ÀÌ·¸°Ô ¼±¾ðÇÏ´Â °Ç Àýµ¥·Î ¾ÈµÊ´Ï´Ù. ¹è¿­ÀÇ ÃʱⰪÀ» ÁÖ´Â°Ç ÀϺθ¸ Á־ µÊ´Ï´Ù.

Áï ¹è¿­ÀÇ ¿ø¼Ò¼ö°¡ 10°³À̾ ¾Õ¿¡ 5°³¸¸ ÃʱⰪÀ» Á־ µÈ´Ù´Â °ÍÀÌÁÒ.




¿¹¸¦ µé¾î




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




ÀÌ·¸°Ô ÇÏ¸é ¾Õ¿¡ 5°³ÀÇ ¿ø¼Ò¸¸ ÃʱⰪÀÌ µé¾î°¡°í ³ª¸ÓÁö´Â ÃʱⰪÀÌ ¾ø°Ô µÊ´Ï´Ù.

¸¸¾à ¹è¿­ÀÌ ¹®ÀÚ ¹è¿­À϶§´Â ¹®ÀÚ¿­ ±×´ë·Î¸¦ ÃʱⰪÀ¸·Î Á־ µÊ´Ï´Ù.

Áï




char Array[10] = "String";




ÀÌ·¸°ÔÇصµ µÈ´Ù´Â °ÍÀÌÁÒ. ÀÌ·¸°Ô ¼±¾ðÇÑ°Í°ú




chat Array[10] = { 'S', 't', 'r', 'i', 'n', 'g' };




ÀÌ·¸°Ô ¼±¾ðÇÑ°ÍÀÇ Â÷ÀÌ´Â ¹«¾ùÀÎÁö ¾Æ½Ã°ÚÁÒ?

óÀ½ ¹æ¹ýÀ¸·Î ¼±¾ðÇÑ°Ç ¹®ÀÚ¿­À» ±×´ë·Î¸¦ ÃʱⰪÀ¸·Î ÁÖ¾úÀ¸¹Ç·Î ³¡¿¡ NULL¹®ÀÚ°¡ µé¾î°¡°ÚÁÒ? ±×·¯¹Ç·Î




chat Array[10] = { 'S', 't', 'r', 'i', 'n', 'g', NULL };




ÀÌ°Í°ú ¶È°°Àº °ÍÀÌ µÊ´Ï´Ù.




- ´ÙÂ÷¿ø ¹è¿­

À§¿¡¼­ ¹è¿î ÇüÅÂÀÇ ¹è¿­À» 1Â÷¿ø ¹è¿­ À̶ó°í ÇÕ´Ï´Ù. ÇÏÁö¸¸ ¹è¿­¿¡´Â 2Â÷¿ø ¹è¿­ 3Â÷¿ø ¹è¿­µîµî °è¼Ó À̾îÁöÁÒ. ÀÌ·¸°Ô 2Â÷¿ø ¹è¿­ ÀÌ»óÀ» ÅëƲ¾î ´ÙÂ÷¿ø ¹è¿­ À̶ó°í ÇÕ´Ï´Ù.

»ç½Ç ´ÙÂ÷¿ø ¹è¿­À̶ó°í Çؼ­ 1Â÷¿ø ¹è¿­°ú Å©°Ô ´Ù¸¦°ÍÀÌ ¾ø½À´Ï´Ù.

C¿¡¼­ ´ÙÂ÷¿ø ¹è¿­Àº ½±°Ô ¹è¿­ÀÇ ¹è¿­.. À̶ó°í »ý°¢ÇÏ½Ã¸é µÊ´Ï´Ù.

¿¹¸¦ µé¾î 2Â÷¿ø ¹è¿­Àº ¹è¿­ÀÇ ¹è¿­ÀÌ°í, 3Â÷¿ø ¹è¿­Àº ¹è¿­ÀÇ ¹è¿­ÀÇ ¹è¿­ÀÌ µÇ´Â °ÍÀÌÁÒ.




(1) ´ÙÂ÷¿ø ¹è¿­ÀÇ ¼±¾ð




1Â÷¿ø ¹è¿­Àº ¼±¾ðÇÒ¶§ ÀÏ¹Ý º¯¼ö ¼±¾ð°ú ¶È°°À¸³ª []¸¦ ºÙ¿©ÁÖ°í

±× ¾È¿¡ ¹è¿­ÀÇ Å©±â¸¸ Á¤ÇØÁÖ¸é µÇ¾ú¾úÁÒ? 2Â÷¿ø ¹è¿­Àº ¹è¿­ÀÇ ¹è¿­ÀÌ´Ï ¼±¾ðÀº 1Â÷¿ø ¹è¿­°ú ¶È°°À¸³ª []¸¦ ´õ ºÙ¿©ÁÖ°í ±× ¾È¿¡ ¹è¿­ Å©±â¸¦ ³Ö¾îÁÖ¸é µÇ´Â °ÍÀÌÁÒ.

Áï




µ¥ÀÌÅÍÇüÅ ¹è¿­¸í[¹è¿­Å©±â][¹è¿­Å©±â];




ÀÌ·¸°Ô ¼±¾ðÇØ ÁÖ¸é µÇ´Â °Í ÀÔ´Ï´Ù.

3Â÷¿ø ¹è¿­ ¿ª½Ã 2Â÷¿ø ¹è¿­ ¼±¾ð°ú ¶È°°À¸³ª []¸¦ ´õ ºÙ¿©ÁÖ°í ±× ¾È¿¡ ¹è¿­ Å©±â¸¦ ³Ö¾î ÁÖ¸é µÊ´Ï´Ù. ±×·¯´Ï±î




µ¥ÀÌÅÍÇüÅ ¹è¿­¸í[¹è¿­Å©±â][¹è¿­Å©±â][¹è¿­Å©±â];




ÀÌ·¸°Ô ¼±¾ðÇØ ÁÖ¸é 3Â÷¿ø ¹è¿­ÀÌ µÇ´Â °Í ÀÔ´Ï´Ù. 4Â÷¿ø 5Â÷¿ø...µµ ÀÌ·± ½ÄÀ¸·Î []¸¸ ´Ã¾î³¯ »ÓÀÌÁÒ.




¿¹¸¦ µé¾î Array¶ó´Â 10*10ÀÇ Å©±â¸¦ °®´Â 2Â÷¿ø Á¤¼ö ¹è¿­Àº




int Array[10][10];




ÀÌ·¸°Ô ¼±¾ðÇÏ¸é µÊ´Ï´Ù.

¸¸¾à 10*10*10ÀÇ Å©±â¸¦ °®´Â 3Â÷¿ø ¹è¿­À̶ó¸é




int Array[10][10][10];




ÀÌ·¸°Ô ¼±¾ðÇÏ¸é µÇ°ÚÁÒ?




(2) ´ÙÂ÷¿ø ¹è¿­ÀÇ »ç¿ë




´ÙÂ÷¿ø ¹è¿­ »ç¿ë½Ã¿¡µµ ´ÜÁö []¸¸ ´Ã¾î³ª°Ô µÊ´Ï´Ù.




2Â÷¿ø ¹è¿­ÀÇ °æ¿ì




¹è¿­¸í[÷ÀÚ][÷ÀÚ] = °ª;

º¯¼ö = ¹è¿­¸í[÷ÀÚ][÷ÀÚ];




ÀÌ·¸°Ô »ç¿ëÇÒ¼ö ÀÖ°í, 3Â÷¿ø ¹è¿­ÀÇ °æ¿ì´Â




¹è¿­¸í[÷ÀÚ][÷ÀÚ][÷ÀÚ] = °ª;

º¯¼ö = ¹è¿­¸í[÷ÀÚ][÷ÀÚ][÷ÀÚ];




ÀÌ·± ½ÄÀ¸·Î »ç¿ëÇÒ¼ö ÀÖÁÒ.




¿¹¸¦ µé¾î º¸ÁÒ. ¾Æ±î ¿¹·Î µé¾ú´ø Array¶ó´Â 10*10Å©±âÀÇ 2Â÷¿ø Á¤¼ö ¹è¿­ÀÌ ÀÖÀ»¶§, 1¹ø° ¹è¿­ÀÇ 3¹ø° ¿ø¼Ò¿¡ 3À» ³ÖÀ¸·Á¸é




Array[0][2]=3;




ÀÌ·¸°Ô ÇØ ÁÖ¸é µÊ´Ï´Ù.

¸¸¾à Array¶ó´Â 10*10*10Å©±âÀÇ 3Â÷¿ø Á¤¼ö ¹è¿­ÀÌ ÀÖ´Ù°í ÇÏ°í, 1¹ø° ¹è¿­ÀÇ 3¹ø° ¹è¿­ÀÇ 2¹ø° ¿ø¼Ò¿¡ 2¸¦ ³ÖÀ¸·Á¸é




Array[0][2][1]=2;

ÀÌ·¸°Ô ÇÏ¸é µÊ´Ï´Ù.




(3) ´ÙÂ÷¿ø ¹è¿­ÀÇ ÃʱⰪ.




´ÙÂ÷¿ø ¹è¿­ ¿ª½Ã ÃʱⰪÀ» °¡Áú¼ö ÀÖ½À´Ï´Ù. ´ÙÂ÷¿ø ¹è¿­¿¡ ÃʱⰪÀ» ³Ö´Â°Í ¿ª½Ã ´ÙÂ÷¿ø ¹è¿­ÀÌ ¹è¿­ÀÇ ¹è¿­À̶ó´Â °ÍÀ» »ý°¢ÇÏ½Ã¸é ½±°Ô ÇϽǼö ÀÖ½À´Ï´Ù.

1Â÷¿ø ¹è¿­¿¡ ÃʱⰪÀ» ÁöÁ¤ÇÒ¶§´Â {}¾È¿¡ ÃʱⰪÀ» ¿ø¼ÒÀÇ ¼ø¼­µ¥·Î ½á ÁÖ¸é µÇ¾ú¾úÁÒ?

±×·¯¹Ç·Î 2Â÷¿ø ¹è¿­Àº ¹è¿­ÀÇ ¹è¿­ À̹ǷΠ{}¾È¿¡ ¶Ç {}¸¦ ½á¼­ ÃʱⰪÀ» ÁÖ¸é µÊ´Ï´Ù. ¿¹¸¦ µé¾î




int Array[2][3];




ÀÌ·± ¹è¿­ÀÌ ÀÖ´Ù°í ÇÕ´Ï´Ù. ÀÌ°É ÃʱⰪÀ» Á־ ¼±¾ðÇϸé




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




ÀÌ·¸°Ô ÇÏ¸é µÇ´Â °ÍÀÌÁÒ.

3Â÷¿ø ¹è¿­ À̶ó¸é {}¾È¿¡ {}¾È¿¡ ¶Ç´Ù½Ã {}¾È¿¡ ¿ø¼ÒÀÇ ÃʱⰪÀ» ½á ÁÖ¸é µÇ´Â °ÍÀÌ°í¿ä. Áï




int Array[2][3][2] = { { { 1, 2 } , { 3, 4 }, { 5, 6 } },

                       { { 7, 8 } , { 9, 10 }, { 11, 12 } } };

ÀÌ·¸°Ô ÇÏ¸é µÊ´Ï´Ù.

´ÙÂ÷¿ø ¹è¿­¿¡ ÃʱⰪÀ» ÁöÁ¤ÇÏ´Â ¹æ¹ýÀº ÀÌ°Í ¸»°íµµ ±×³É 1Â÷¿ø ¹è¿­Ã³·³ ÁöÁ¤ÇÏ´Â ¹æ¹ýµµ ÀÖ½À´Ï´Ù.

1Â÷¿ø ¹è¿­Ã³·³ {}¾È¿¡ ¹è¿­ÀÇ ¸ðµç ¿ø¼ÒÀÇ ¼ø¼­´ë·Î ÃʱⰪÀ» Àû¾î ÁÖ´Â °ÍÀÌÁÒ.

¿¹¸¦ µé¾î ¾Æ±î




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

ÀÌ°Ç




int Array[2][3] = { 1, 2, 3, 4, 5, 6 };   ÀÌ·¸°Ô ½á Á־ »ó°ü ¾ø½À´Ï´Ù.

- ¹è¿­À» Àμö·Î Àü´Þ.

¾Æ±î ÇÔ¼ö¿¡ °ª Àü´ÞÇÏ´Â ¹æ¹ýÀ» ¹è¿üÁÒ? ±×·±µ¥ ±×¶§ ¹è¿î°Ç ÀÏ¹Ý µ¥ÀÌÅÍ¿¡ ´ëÇÑ °ÍÀ̾ú½À´Ï´Ù.

±×·³ ¹è¿­À» Àμö·Î Àü´ÞÇÑ´Ù¸é ¾î¶»°Ô ÇÒ±î¿ä? ¹è¿­ ¿ª½Ã ÀÏ¹Ý µ¥ÀÌÅÍ¿Í Àü´Þ ¹æ¹ýÀÌ ¶È°°½À´Ï´Ù.

±×³É Àμö¸¦ ¹è¿­·Î ¸¸µé¾î ÁÖ¸é µÇÁÒ. ¿¹¸¦ µé¾î ¾Æ¹« °ªµµ ¸®ÅÏÇÏÁö ¾Ê°í, Àμö·Î´Â Á¤¼öÇüÅÂÀÇ 10°³ÀÇ ¿ø¼Ò¸¦ °¡Áø a¶ó´Â ¹è¿­ÀÌ ÀÖ´Â func¶ó´Â ÇÔ¼ö´Â




void func(int a[10])

{

   .

   .

   .

}




ÀÌ·¸°Ô ¸¸µé°í Àμö »ç¿ëµµ ÀÏ¹Ý ¹è¿­°ú ¶È°°ÀÌ »ç¿ëÇÏ¸é µÊ´Ï´Ù. ±×·±µ¥ ¿©±â¼­ ¹è¿­ÀÇ Å©±â¸¦ »ý·«Çصµ µÊ´Ï´Ù.

Áï




void func(int a[])

{

   .

   .

   .

}

ÀÌ·¸°Ô Çصµ µÈ´Ù´Â °ÅÁÒ. ÀÌ·¸°Ô Çصµ ¾Æ¹« »ó°ü ¾ø¾î¿ä. µÎ°¡ÁöÀÇ Â÷ÀÌÁ¡Àº ÀüÇô ¾øÁÒ.

±×·³ ¿©±â¼­ Áß¿äÇÑ°Í ÇÑ°¡Áö¸¦ ¸»¾¸µå¸±²²¿ä.

¿¹Á¦¸¦ º¸½ÃÁÒ.




/* ÆÄÀÏ À̸§     : C8-4.C

   ÇÁ·Î±×·¥ ³»¿ë : ÇÔ¼ö ¿¹Á¦ */

#include <stdio.h>

void func(int data[])

{

   data[0]=10;

}

void main()

{

   int i;

   int var[10]={ 1, 2, 3, 4, 5, 6, 7, 8, 9, 0 };




   func(var);

   for(i=0;i<10;i++)

      printf("%d\n",var);

}




ÀÌ ¼Ò½º´Â ¾Æ±î ³ª¿Ô´ø ¿¹Á¦¸¦ Á¶±Ý º¯Çü ½ÃÄѼ­ funcÇÔ¼öÀÇ Àμö¸¦ ¹è¿­·Î ÇÑ °ÍÀä.

¿©±â¼­ funcÇÔ¼ö¸¦ È£ÃâÇÒ¶§ varÀ̶õ º¯¼ö¸¦ Àμö·Î ÁÖ¾ú½À´Ï´Ù.

±×¸®°í funcÇÔ¼ö¿¡¼­´Â data¶ó´Â Àμö·Î ¹è¿­À» Àü´Þ¹Þ¾Ò´Âµ¥, dataÀÇ Ã¹¹ø° ¿ø¼Ò¸¦ 10À¸·Î ¹Ù²Ù°í ÀÖÁÒ. ±×·³ À̶§ mainÇÔ¼ö¿¡ ÀÖ´Â varÀ̶õ ¹è¿­ÀÇ Ã¹¹ø° ¿ø¼Òµµ 10À¸·Î ¹Ù²ð±î¿ä?

¾Æ±îÀÇ °æ¿ì¸¦ »ý°¢ÇØ º¸¸é ¹Ù²îÁö ¾ÊÀ»°Í °°Áö¸¸, ¹Ù²ñ´Ï´Ù.

ÀÌÀ¯´Â ¹è¿­À» Àμö·Î Àü´ÞÇÒ ¶§´Â ±× ÁÖ¼Ò¸¦ Àü´ÞÇØ Áֱ⠶§¹®ÀÌÁÒ.

ÀÚ¼¼ÇÑ ÀÌÀ¯´Â Áö±Ý ¼³¸íÇϱ⿡´Â ¹«¸®ÀÌ°í, Æ÷ÀÎÅÍ °­Á°¡ ³¡³­ ÈÄ¿¡ ¼³¸íÇØ µå¸®ÁÒ. Áö±ÝÀº ±×³É ¹Ù²ï´Ù´Â °Í¸¸ ²À ¾Ë¾ÆµÎ¼¼¿ä. ±×¸®°í ÀÌ·¸°Ô Àμö Àü´Þ½Ã ÁÖ¼Ò¸¦ Àü´ÞÇØ ÁÖ¾î ÇÔ¼ö¿¡¼­ ÀμöÀÇ °ªÀ» ¹Ù²Ù¸é ÇÔ¼ö¸¦ È£ÃâÇÑ °÷ÀÇ º¯¼öµµ °ªÀÌ ¹Ù²î´Â È£Ãâ ¹æ¹ýÀ» Call by reference¶ó°í ÇÕ´Ï´Ù.




Previous:while ¹®, do~while ¹®, goto. ÇÔ¼ö·Î °ªÀ» Àü´Þ

Next:Æ÷ÀÎÅÍ 1




À̹ø °­Á ¿¡¼­´Â Æ÷ÀÎÅÍ¿¡ ´ëÇؼ­ ¾Ë¾Æº¸µµ·Ï ÇÏ°Ú½À´Ï´Ù. Æ÷ÀÎÅÍ´Â C¾ð¾î¿¡¼­ Á¤¸»·Î Áß¿äÇÏÁÒ.

C°¡ °­·ÂÇÑ ÀÌÀ¯Áß Çϳª°¡ ÀÌ Æ÷ÀÎÅÍ ¶§¹®ÀÔ´Ï´Ù. ´ëºÎºÐÀÇ »ç¶÷µéÀÌ C¾ð¾î¸¦ °øºÎÇÒ¶§ ¹Ù·Î ÀÌ Æ÷ÀÎÅ͸¦ °¡Àå ¾î·Æ°Ô »ý°¢ÇÕ´Ï´Ù. ÇÏÁö¸¸ Á¦°¡ »ý°¢Çϱ⿣ ÀÌ Æ÷ÀÎÅÍ´Â ±×·¸°Ô ¾î·Á¿î °ÍÀÌ ¾Æ´Ï¶ó°í »ý°¢ÇÕ´Ï´Ù. ¾î·Æ´Ù´Â »ý°¢À» °®Áö ¸¶½Ã°í Æ÷ÀÎÅÍ´Â Á¤¸» ½¬¿î °ÍÀ̶ó´Â »ý°¢À» °®°í ÀÌ °­Á¸¦ ÀÐ¾î º¸½Ã±â ¹Ù¶ø´Ï´Ù.




# Æ÷ÀÎÅÍ°¡ µµ´ëü ¹«¾ù?




Æ÷ÀÎÅÍÀÇ Á¤È®ÇÑ À̸§Àº 'Æ÷ÀÎÅÍÇü º¯¼ö' ÀÔ´Ï´Ù. ±×³É ÁÙ¿©¼­ Æ÷ÀÎÅͶó°í ÇÏ´Â °ÍÀÌÁÒ. ±×·³ ¿©±â¼­ Æ÷ÀÎÅÍ´Â º¯¼ö¶ó´Â°É ¾Æ¼Ì°ÚÁÒ? º¯¼ö¿¡´Â Á¤¼ö ÇüÅÂ, ÀåÁ¤¼ö, ºÎµ¿ ¼Ò¼ýÁ¡ ¼ö, ¹®ÀÚ ÇüÅ µîµîÀÌ ÀÖ½À´Ï´Ù. ±×·³ Æ÷ÀÎÅÍ´Â µµ´ëü ¾î¶² ÇüÅ Àϱî¿ä? Æ÷ÀÎÅÍ´Â ¹Ù·Î ÁÖ¼Ò ÇüÅ ÀÔ´Ï´Ù. ±×·¯´Ï±î Á¤¼öµµ ¾Æ´Ï°í, ¹®ÀÚµµ ¾Æ´Ñ ¸Þ¸ð¸®ÀÇ ÁÖ¼Ò¸¦ ±â¾ï½ÃÅ°´Â º¯¼ö¶ó´Â °ÍÀÌÁÒ. Æ÷ÀÎÅÍ´Â º¯¼öÀÌ°í, º¯¼ö Áß¿¡¼­µµ ÁÖ¼Ò¸¦ ±â¾ï½ÃÅ°±â À§ÇÑ º¯¼ö¶ó´Â °ÍÀ» ²À ±â¾ïÇØ µÎ½Ã¸é ´ÙÀ½Àº Àß ÀÌÇØ°¡ µÇ½Ç °Ì´Ï´Ù.




# Æ÷ÀÎÅÍ´Â ¾î¶»°Ô? ¼±¾ðÀ»..




º¯¼ö´Â »ç¿ëÀü¿¡ ¼±¾ðÀ» ÇØ ÁÖ¾î¾ß ÇÕ´Ï´Ù. Æ÷ÀÎÅÍ ¿ª½Ã º¯¼ö À̹ǷΠ¼±¾ðÀ» ÇØ ÁÖ¾î¾ß ÇÏ°ÚÁÒ?

Æ÷ÀÎÅÍÀÇ ¼±¾ðÀº ´ÙÀ½°ú °°ÀÌ ÇÕ´Ï´Ù.




µ¥ÀÌÅÍÇüÅÂ* Æ÷ÀÎÅÍÀ̸§;




¾Æ±î Æ÷ÀÎÅÍ´Â ÁÖ¼Ò¸¦ ±â¾ï½ÃÅ°´Â º¯¼ö¶ó°í Çß½À´Ï´Ù. ±×·±µ¥ ÁÖ¼Ò¿¡µµ Á¾·ù°¡ ÀÖÁÒ? Á¤¼ö ÇüÅ º¯¼öÀÇ ÁÖ¼Ò, ¹®ÀÚ ÇüÅ º¯¼öÀÇ ÁÖ¼Ò µîµî.. ÀÌ·± ¾î¶² ÇüÅÂÀÇ ÁÖ¼ÒÀÎÁö¸¦ ÁöÁ¤ÇØ ÁÖ´Â °ÍÀÌ µ¥ÀÌÅÍÇüÅ ÀÔ´Ï´Ù.

¸¸¾à ÁÖ¼ÒÀÇ ÇüÅ°¡ Ưº°È÷ Á¤ÇØÁ® ÀÖÁö ¾Ê¾Ò´Ù¸é void¸¦ ¾¸´Ï´Ù. void¸¦ ½á¼­ Æ÷ÀÎÅ͸¦ ¼±¾ðÇÏ¸é ¾î¶² ÇüÅÂÀÇ ÁÖ¼ÒµçÁö ³ÖÀ»¼ö ÀÖÁÒ. ±×¸®°í *´Â ±× º¯¼ö°¡ Æ÷ÀÎÅÍÀÓÀ» ¾Ë¸®±â À§ÇØ ½á ÁÖ´Â °ÍÀÌ°í,

Æ÷ÀÎÅÍÀ̸§Àº ±× Æ÷ÀÎÅ͸¦ »ó¡ÇÏ´Â ½Éº¼ÀÔ´Ï´Ù. ¿¹¸¦ µé¾î Á¤¼ö ÇüÅÂÀÇ º¯¼öÀÇ ÁÖ¼Ò¸¦ ³Ö´Â Æ÷ÀÎÅÍ´Â




int* Pointer;

ÀÌ·¸°Ô ¼±¾ðÇÕ´Ï´Ù.




Æ÷ÀÎÅÍ ¼±¾ð½Ã *ÀÇ À§Ä¡´Â µ¥ÀÌÅÍÇüÅÂ¿Í Æ÷ÀÎÅÍÀ̸§ »çÀÌ¿¡¶ó¸é ¾î´À °÷¿¡ ¿Íµµ »ó°ü ¾ø½À´Ï´Ù.

¿¹¸¦ µé¾î ¾Æ±î Pointer¶ó´Â º¯¼ö´Â




int * Pointer;




ÀÌ·¸°Ô ¼±¾ðÇصµ µÇ°í,




int *Pointer;




ÀÌ·¸°Ô ¼±¾ðÇصµ »ó°ü ¾ø½À´Ï´Ù.




# Æ÷ÀÎÅÍ ¿¬»êÀÚ

C¾ð¾î ¿¡¼­´Â Æ÷ÀÎÅÍ »ç¿ë½Ã¿¡ »ç¿ëÇÏ´Â ¿¬»êÀÚ°¡ 2°¡Áö°¡ ÀÖ½À´Ï´Ù. ±× µÎ°¡Áö´Â ±âÁ¸ÀÇ ºñÆ®º° ³í¸®°ö ¿¬»êÀÚÀÎ &¿Í °ö¼À ¿¬»êÀÚÀÎ *ÀÔ´Ï´Ù. Æ÷ÀÎÅÍ ¿¬»êÀÚ·Î ¾²À϶§ &´Â ÁÖ¼Ò ¿¬»êÀÚ¶ó°í ÇÏ°í,

*´Â ÂüÁ¶ ¿¬»êÀÚ¶ó°í ÇÕ´Ï´Ù.




(1) ÁÖ¼Ò ¿¬»êÀÚ

ÁÖ¼Ò ¿¬»êÀÚ¶õ ¾î¶² º¯¼öÀÇ ÁÖ¼Ò¸¦ ¾ò´Â ¿¬»êÀÚ¸¦ ¸»ÇÕ´Ï´Ù. »ç¿ë¹ýÀº ÁÖ¼Ò¸¦ ¾ò°íÀÚ ÇÏ´Â º¯¼öÀÇ ¾Õ¿¡ &¸¦ ºÙ¿© Áֱ⸸ ÇÏ¸é µÊ´Ï´Ù. ±×·¯´Ï±î




Æ÷ÀÎÅÍ = &º¯¼ö;




ÀÌ·¸°Ô ÇÏ¸é º¯¼öÀÇ ÁÖ¼Ò°¡ Æ÷ÀÎÅÍ¿¡ µé¾î°¡ÁÒ.

¿¹¸¦ µé¾î




int Variable=10;

int *Pointer;

ÀÌ·¸°Ô µÎ º¯¼ö¸¦ ¼±¾ðÇß´Ù°í ÇÒ¶§,




Pointer = &Variable;




ÀÌ·¸°Ô ÇØ ÁÖ¸é Variable¶ó´Â º¯¼öÀÇ ÁÖ¼Ò°¡ Pointer¶ó´Â º¯¼ö·Î µé¾î°©´Ï´Ù. ÀÌ°ÍÀ» ½ÇÁ¦ ¸Þ¸ð¸® »óÀÇ ±¸Á¶¸¦ ÅëÇØ ´Ù½ÃÇѹø »ìÆ캸ÁÒ. óÀ½¿¡




int Variable=10;

int *Pointer;

ÀÌ·¸°Ô º¯¼ö¸¦ ¼±¾ðÇÒ ´ç½Ã´Â




º¯¼öÀ̸§ | Variable             Pointer

   ÁÖ¼Ò   |    1         2          3          4 . . .

---------+--------------------------------------------

    °ª    |    10        ?          ?          ?

´ÙÀ½°ú °°Àº ¸Þ¸ð¸® ±¸Á¶¸¦ °®½À´Ï´Ù.




¿©±â¼­ Variable¶ó´Â º¯¼ö´Â ½ÇÀç ¸Þ¸ð¸® ÁÖ¼Ò 1À» ÇÒ´ç¹Þ¾Ò´Ù°í ÇÏ°í, Pointer¶ó´Â º¯¼ö´Â ½ÇÀç ¸Þ¸ð¸® ÁÖ¼Ò 3À» ÇÒ´ç¹Þ¾Ò´Ù°í ÇսôÙ.

´ÙÀ½¿¡




Pointer = &Variable;

ÀÌ·¸°Ô Çϸé Pointer¶ó´Â º¯¼ö¿¡ VariableÀÇ ÁÖ¼ÒÀÎ 1ÀÌ µé¾î°¡¼­




º¯¼öÀ̸§ | Variable             Pointer

   ÁÖ¼Ò   |    1         2          3          4 . . .

---------+--------------------------------------------

    °ª    |    10        ?          1          ?

ÀÌ·¸°Ô µÊ´Ï´Ù.




(2) ÂüÁ¶ ¿¬»êÀÚ

Æ÷ÀÎÅÍ´Â ÁÖ¼Ò¸¦ ±â¾ï½ÃÅ°´Â º¯¼ö¶ó´Â °ÍÀ» ÀÌ¹Ì ¹è¿ü½À´Ï´Ù. ±×·¸´Ù¸é ±× ±â¾ï½ÃÅ°°í ÀÖ´Â ÁÖ¼Ò¿¡ ±â¾ïµÇ¾î ÀÖ´Â °ªÀ» »ç¿ëÇϰųª ´Ù¸¥ °ªÀ¸·Î ¹Ù²Ü¶© ¾î¶»°Ô ÇÒ±î¿ä? ±×¶§ ÂüÁ¶ ¿¬»êÀÚÀÎ *¸¦ »ç¿ë ÇÕ´Ï´Ù.

»ç¿ë¹ýÀº




*Æ÷ÀÎÅÍ = °ª;

º¯¼ö = *Æ÷ÀÎÅÍ;

ÀÌ·± ½ÄÀ¸·Î »ç¿ëÇÏÁÒ.

ù¹ø°ÀÇ °æ¿ì Æ÷ÀÎÅÍ¿¡ ÀúÀåµÇ¾î ÀÖ´Â ÁÖ¼Ò¿¡ °ªÀ» ³Ö¾î ÁÜ´Ï´Ù.

µÎ¹ø°ÀÇ °æ¿ì´Â Æ÷ÀÎÅÍ¿¡ ÀúÀåµÇ¾î ÀÖ´Â ÁÖ¼Ò¿¡ ±â¾ïµÇ¾î ÀÖ´Â °ªÀ» º¯¼ö·Î ³Ö¾î ÁÖ°Ô µÇ°ÚÁÒ?

¿¹¸¦ µé¾î..

int Var1=10, Var2;




int *Pointer;




ÀÌ·¸°Ô ¼¼°³ÀÇ º¯¼ö¸¦ ¼±¾ðÇß°í,




Pointer = &Var1;




ÀÌ·¸°Ô Pointer¿¡ Var1ÀÇ ÁÖ¼Ò¸¦ ³Ö¾ú´Ù°í ÇսôÙ.

À̶§




*Pointer=5;

ÀÌ·¸°Ô ÇØ ÁÖ¸é Pointer¿¡ ÀúÀåµÇ¾î ÀÖ´Â ÁÖ¼Ò Áï Var1À̶ó´Â º¯¼öÀÇ ÁÖ¼Ò¿¡ 5¸¦ ³Ö¾î ÁֹǷΠ°á±¹¿¡´Â Var1Àº 5°¡ µÊ´Ï´Ù. ±× ´ÙÀ½À¸·Î




Var2=*Pointer;

ÀÌ·¸°Ô Çß´Ù¸é Pointer¿¡ ÀúÀåµÇ¾î ÀÖ´Â ÁÖ¼Ò¿¡ µé¾îÀÖ´Â °ª, Áï Var1¶ó´Â º¯¼öÀÇ ÁÖ¼Ò¿¡ µé¾îÀÖ´Â °ªÀÎ 5°¡ Var2¿¡µµ µé¾î°¡ Var1, Var2°¡ ¸ðµÎ 5°¡ µÇÁÒ.




ÀÌ°É ½ÇÀç ¸Þ¸ð¸® ±¸Á¶¸¦ º¸¸ç ´Ù½ÃÇѹø »ìÆì º¼±î¿ä?

óÀ½¿¡

int Var1=10, Var2;

int *Pointer;

ÀÌ·¸°Ô ¼¼°³ÀÇ º¯¼ö¸¦ ¼±¾ðÇÒ ´ç½Ã´Â

º¯¼öÀ̸§ |   Var1      Var2                Pointer

   ÁÖ¼Ò   |    1         2          3          4 . . .

---------+--------------------------------------------

    °ª    |    10        ?          ?          ?

´ÙÀ½°ú °°Àº ¸Þ¸ð¸® ±¸Á¶¸¦ °®´Âµ¥, ¿©±â¼­ Var1¶ó´Â º¯¼ö´Â ½ÇÀç ¸Þ¸ð¸® ÁÖ¼Ò 1À» ÇÒ´ç¹Þ¾Ò°í,

Var2¶ó´Â º¯¼ö´Â ½ÇÀç ¸Þ¸ð¸® ÁÖ¼Ò 2¸¦, Pointer¶ó´Â º¯¼ö´Â ¸Þ¸ð¸® ÁÖ¼Ò 4À» ÇÒ´ç¹Þ¾Ò´Ù°í ÇսôÙ.

À̶§




Pointer = &Var1;

ÀÌ·¸°Ô Pointer¶ó´Â º¯¼ö¿¡ Var1ÀÇ ÁÖ¼ÒÀÎ 1À» ³Ö¾îÁÖ¸é

º¯¼öÀ̸§ |   Var1      Var2                Pointer

   ÁÖ¼Ò   |    1         2          3          4 . . .

---------+--------------------------------------------

    °ª    |    10        ?          ?          1

ÀÌ·¸°Ô µÇ°ÚÁÒ? ±×¸®°í ´ÙÀ½À¸·Î




*Pointer=5;




ÀÌ·¸°Ô ÇØ ÁÖ¸é Pointer¿¡ ±â¾ïµÇ¾î ÀÖ´Â ÁÖ¼Ò Áï 1À̶ó´Â ÁÖ¼Ò¿¡ 5¸¦ ³Ö¾î ÁÖ¾î




º¯¼öÀ̸§ |   Var1      Var2                Pointer

   ÁÖ¼Ò   |    1         2          3          4 . . .

---------+--------------------------------------------

    °ª    |    5         ?          ?          1

ÀÌ·¸°Ô µÊ´Ï´Ù. ±×·¯¹Ç·Î Var1ÀÇ °ªÀº 5·Î ¹Ù²î°Ô µÊ´Ï´Ù.

¸¶Áö¸·À¸·Î




Var2=*Pointer;




ÀÌ·¸°Ô Çϸé Pointer¿¡ ÀúÀåµÇ¾î ÀÖ´Â ÁÖ¼Ò Áï 1À̶ó´Â ÁÖ¼Ò¿¡ µé¾îÀÖ´Â °ªÀÎ 5°¡ Var2¿¡µµ µé¾î°¡

º¯¼öÀ̸§ |   Var1      Var2                Pointer

   ÁÖ¼Ò   |    1         2          3          4 . . .

---------+--------------------------------------------

    °ª    |    5         5          ?          1

ÀÌ·¸°Ô Var1°ú Var2¿¡ ¸ðµÎ 5°¡ µé¾î°¡°Ô µÇÁÒ.




# Æ÷ÀÎÅÍ¿¡ ÃʱⰪ ÁÖ±â.

º¯¼ö´Â ¼±¾ð½Ã¿¡ ÃʱⰪÀ» ÁÙ¼ö ÀÖ¾úÁÒ? ±×·±µ¥ Æ÷ÀÎÅ͵µ º¯¼öÀ̹ǷΠ´ç¿¬È÷ ÃʱⰪÀ» ÁÙ¼ö ÀÖ°ÚÁÒ? Æ÷ÀÎÅÍ¿¡ ÃʱⰪÀ» ÁÖ´Â ¹æ¹ýÀº ÀÏ¹Ý º¯¼ö¿Í ¶È°°½À´Ï´Ù.

±×·¯´Ï±î




int* Pointer=1;

ÀÌ·¸°Ô Çϸé 1À̶ó´Â ÁÖ¼Ò¸¦ ÃʱⰪÀ¸·Î ÁØ °ÍÀÌÁÒ.

±×·±µ¥ ¹º°¡ ÀÌ»óÇÏÁÒ? ÁÖ¼Ò´Â Àڱ⠸¶À½µ¥·Î Á¤ÇÏ´Â°Ô ¾Æ´Ï°Åµç¿ä. ±×·¡¼­ Àú·¸°Ô ¼±¾ðÇÏ´Â »ç¶÷À» '¹Ùº¸'¶ó°í ÇÏÁÒ. ÀϹÝÀûÀ¸·Î Æ÷ÀÎÅÍ¿¡ ÃʱⰪÀ» ÁÙ ¶§´Â




µ¥ÀÌÅÍÇü º¯¼ö;

µ¥ÀÌÅÍÇü* Æ÷ÀÎÅÍÀ̸§ = &º¯¼ö;




ÀÌ·¸°Ô ÇÕ´Ï´Ù.

¿ì¼± º¯¼ö¸¦ ¼±¾ðÇÏ°í ±× º¯¼öÀÇ ÁÖ¼Ò¸¦ ÃʱⰪÀ¸·Î ÁÖ´Â °ÍÀÌÁÒ.

¿¹¸¦ µé¾î




int Variable;

int* Pointer=&Variable;

ÀÌ·¸°Ô Çϸé Variable¶ó´Â º¯¼öÀÇ ÁÖ¼Ò°¡ Pointer¶ó´Â Æ÷ÀÎÅÍ¿¡ ÃʱⰪÀ¸·Î µé¾î°©´Ï´Ù.




# ´Ù½ÃÇѹø Æ÷ÀÎÅÍ¿¡ ´ëÇØ Á¤¸®.

Æ÷ÀÎÅÍ¿¡ ´ëÇØ ´Ù½ÃÇѹø Á¤¸®¸¦ ÇØ º¸ÁÒ. ¿ì¼± Æ÷ÀÎÅÍ´Â º¯¼öÀÌ°í, º¯¼ö Áß¿¡¼­µµ ÁÖ¼Ò¸¦ ±â¾ï½ÃÅ°´Â º¯¼ö ÀÔ´Ï´Ù. Æ÷ÀÎÅÍ ¼±¾ðÀº




µ¥ÀÌÅÍÇüÅÂ* Æ÷ÀÎÅ͸í;




ÀÌ·¸°Ô ÇØ ÁÖ¸é µÇ°í, ¿©±â¼­ µ¥ÀÌÅÍÇüÅ´ ±× Æ÷ÀÎÅÍ°¡ ¾î¶² ÇüÅÂÀÇ º¯¼öÀÇ ÁÖ¼Ò¸¦ ³Ö´Â °ÍÀÎÁö¸¦ ÁöÁ¤ÇÏ´Â °ÍÀ̾úÁÒ? ´ÙÀ½À¸·Î Æ÷ÀÎÅÍ ¿¬»êÀÚ¿¡´Â ÁÖ¼Ò ¿¬»êÀÚ(&)¿Í, ÂüÁ¶ ¿¬»êÀÚ(*)°¡ Àִµ¥, ÁÖ¼Ò ¿¬»êÀÚ´Â ¾î¶² º¯¼öÀÇ ½ÇÁ¦ ÁÖ¼Ò¸¦ ¾ò°íÀÚ ÇÒ¶§ »ç¿ëÇÏ´Â °ÍÀ¸·Î ÁÖ¼Ò¸¦ ¾ò°íÀÚ ÇÏ´Â º¯¼ö ¾Õ¿¡ ºÙ¿© Áֱ⸸ ÇÏ¸é µÇ°í¿ä.

ÂüÁ¶ ¿¬»êÀÚ´Â Æ÷ÀÎÅÍ¿¡ ÀúÀåµÇ¾î ÀÖ´Â ÁÖ¼Ò¿¡ ±â¾ïµÇ¾î ÀÖ´Â µ¥ÀÌÅ͸¦ º¯°æ½ÃÅ°°Å³ª »ç¿ëÇÒ¶§ ¾²´Â °ÍÀ¸·Î, Æ÷ÀÎÅÍÀÇ ¾Õ¿¡ ºÙ¿© Áֱ⸸ ÇÏ¸é µÊ´Ï´Ù.

¿¹¸¦ µé¾î




int Variable;

int* Pointer;

ÀÌ·¸°Ô º¯¼ö µÎ°³°¡ ÀÖÀ»¶§,




Pointer=&Variable;




ÀÌ·¸°Ô Çϸé Pointer¶ó´Â Æ÷ÀÎÅÍ¿¡´Â Variable¶ó´Â º¯¼öÀÇ

ÁÖ¼Ò°¡ µé¾î°¡°í




*Pointer=10;




ÀÌ·¸°Ô Çϸé Pointer¿¡ µé¾îÀÖ´Â ÁÖ¼Ò Áï VariableÀÇ ÁÖ¼Ò¿¡ µé¾îÀÖ´Â °ªÀÌ º¯°æµÇ¹Ç·Î °á±¹Àº Variable°¡ º¯°æµÇ¾î 10ÀÌ µé¾î°¡°Ô µÇÁÒ. ¸¶Áö¸·À¸·Î Æ÷ÀÎÅÍ¿¡ ÃʱⰪÀ» ÁÙ¶§´Â ÀÏ¹Ý º¯¼ö¿Í ¶È°°À¸³ª

ÁÖ¼Ò´Â ¸¶À½µ¥·Î Á¤ÇÏ´Â °ÍÀÌ ¾Æ´Ï¹Ç·Î ÀϹÝÀûÀ¸·Î ÀÏ´Ü º¯¼ö¸¦ ¼±¾ðÇÏ°í Æ÷ÀÎÅÍ¿¡´Â ±× º¯¼öÀÇ ÁÖ¼Ò¸¦ ÃʱⰪÀ¸·Î ÁÝ´Ï´Ù.




¿¹¸¦ µé¾î




int Variable;

int* Pointer=&Variable;




ÀÌ·± ½ÄÀ¸·Î.

±×·³ ¿¹Á¦¸¦ Çϳª º¸ÁÒ.




/* ÆÄÀÏ À̸§     : C9-1.C

   ÇÁ·Î±×·¥ ³»¿ë : Æ÷ÀÎÅÍ ¿¹Á¦. */

#include <stdio.h>

void main()

{

   int Var1, Var2;

   int *pVar=&Var1;




   *pVar=10;

   printf("%d\n",Var1);




   Var2=*pVar;

   printf("%d\n",Var2);




   pVar=&Var2;

   *pVar=5;

   printf("%d\n",Var2);

}

Çѹø Àß ºÐ¼®ÇØ º¸¼¼¿ä. ¾î¶² °á°ú°¡ ³ª¿Ã±î¿ä?

°á°ú´Â




C:\>C9-1.EXE

10

10

5




C:\>

ÀÌ·¸°Ô ³ª¿È´Ï´Ù. ÀÌÀ¯´Â Àß ºÐ¼®ÇØ º¸½Ã¸é ¾Ë°Ô µË´Ï´Ù.


  Hit : 10463     Date : 2004/07/15 07:28



    
pmj0914 ÁÁÀº °­Á »çÀÌÆ® ÀÖ½À´Ï´Ù. ÀÌ»ó¿± À̶ó´Â ºÐÀÇ »çÀÌÆ®ÁÒ ¾Æ½Ã´ÂºÐÀº Àß ¾Ë²¨¶ó°í º¾´Ï´Ù. <a href=http://www.winapi.co.kr target=_blank>http://www.winapi.co.kr</a> ÀÔ´Ï´Ù. API,C,C++,CÇÔ¼öÁ¤¸®,APIÇÔ¼ö 2004/08/06  
pmj0914 ±îÁö ´Ù ÀÖ½À´Ï´Ù. 2004/08/06  
±«µµjs ¾Æ~°¨»çÇÕ´Ï´Ù.^^ 2004/08/18  
¤»¤»¤» ±×´ë·Î ÆÛ¿Â°Å³× 2004/08/27
¤¾¤¾¤¾ À© ¿¡ÀÌÇǾÆÀÌ.. »çÀÌÆ® ÁÁ´øµ¥¿ä.. ÃßõÀÔ´Ï´Ù... 2004/09/30
±«µµjs ±×´ë·ç ¾Æ´Ñµð;;¤Ñ¤Ñ 2004/10/07  
ffaaaaad ±×·³ ¼öÁ¤Çß´Ù°í ¸í½ÃÇØ ³õ´Â°ÍÀÌ ¸ÂÁö ¾Ê³ª¿ä? 2004/10/19
line7979 ùºÎºÐ goto¹®¿¡´ëÇÑ ºñÇÏ°¡ Á» ½ÉÇѵí ^^;; 2004/10/31  
line7979 Á¦°¡ ¹è¿ì±â·Î´Â ÇÁ·Î±×·¥ ½ÇÇà¼Óµµ¸¦ ¸¹ÀÌ °í·ÁÇÏ´Â ÇÁ·Î±×·¥¿¡¼­´Â goto¹®ÀÌ ÀåÁ¡ÀÌ ¸¹´Ù°í ¾Ë°íÀִµ¥... 2004/10/31  
line7979 ±×·¡¼­ Java ¿¡¼­µµ ¾ÆÁ÷±îÁö´Â Å°¿öµå·Î ¾²Áö´Â ¾ÊÁö¸¸ Å°¿öµåó·³ Á¤ÀǵŠÀִٴ¼Ҹ®µµ µé¾ú±¸¿ä ^^;; 2004/10/31  
´çȲ ±ÛÀÚ »ì© ¹Ù²ãµµ ¹Ù²Û°Ç°¡ ¤»¤» ¼³¸íÀÌ °°ÀÚ³ª Á¹ ¾îÀ̾ø´Ù... ÀÌ·±°Ç Ãʵùµµ ÇÏ°Ôµû ..ÆÛ¿À´õ¶óµµ ¸Ö Á» ¾Ë°íÁ»ÇÏÁö ÆÁ°Ô½ÃÆǵµ ³Ê¹«ÇÏ´øµ¥ -_- 2004/12/04
freeanddie ¼öÁ¤ÇÑ°Ç ´ë·« ¹®ÀåÀ̳¡³¯¶§¸¶´Ù ½ºÆäÀ̽º 2¹ø¶ÑµÎ¸°°Å±º... 2004/12/16  
±«µµ¤¶¤² Àå³­ÇÏ³Ä 2005/02/26
uglypadf ¼ö°í ÇϽŠ»ç¶÷¿¡°Ô ¹«½¼ ¸»À» ±×·¸°Ô ÇÒ±î... ³ª»Ó »ç¶÷µéÀ̱º... 2005/03/01  
1521   ÀÎÅͳݿ¡ ¸®´ª½º ¼­¹ö ±¸ÃàÇϱâ[1]     ¼ÒÀ¯
07/07 14745
1520   Overflow °ø°Ý ±â¹ýµé¿¡ ´ëÇÑ Á¤¸® by ¹ö½ºÆ®     ¼ÒÀ¯
07/07 15699
1519   ¹öÆÛ¿À¹öÇ÷οì by ¿ÀÇ϶ó[3]     ¼ÒÀ¯
07/07 15258
1518   Format String Attack - Concept and General Exploit (by Seo SungHyen)[6]     ¼ÒÀ¯
07/07 11423
1517   3¹ø°c°­ÁÂÀÔ´Ï´Ù~¤»[8]     ±«µµjs
07/14 12856
1516   4¹ø°c°­ÁÂ!![7]     ±«µµjs
07/14 10682
1515   ´Ù¼±¹ø° C°­ÁÂ[4]     ±«µµjs
07/14 9731
1514   6¹ø°C°­ÁÂ~!![10]     ±«µµjs
07/15 10305
1513   7¹ø°c°­ÁÂ-1[5]     ±«µµjs
07/15 9581
1512   7¹ø°c°­ÁÂ-2[1]     ±«µµjs
07/15 8797
1511   7¹ø°c°­ÁÂ-3[1]     ±«µµjs
07/15 8530
  8¹ø°c°­ÁÂ[14]     ±«µµjs
07/15 10462
1509   ½Éº¼¸¯ ¸µÅ©°É±â~¡Ù¤»[1]     ±«µµjs
07/25 10442
1508   ÅÚ³Ý ¿¡¼­ FTP ¸®´ª½º ¸í·É¾îÁ¤¸®[5]     ±«µµjs
08/02 17232
1507   ¸í·É¾î[5]     nsh009
08/10 9803
1506   [Lesson.1 C++ÀÇ ±âÃÊ´ÙÁö±â[11]     CIA¿ä¿ø
08/18 9969
1505   [Lesson.2 º¯¼ö¿¡´ëÇØ...[4]     CIA¿ä¿ø
08/18 7320
1504   vi ´Ù´Ü°è ..ÇнÀ[2]     ´ÔÀÇħ¹¬¢â
08/20 11353
1503   ÀÓº£µðµå ¸®´ª½º °øºÎ¹æ¹ý[6]     hansu9
08/22 13229
1502   RPMÀÇ ¿ëµµ[6]     Kaiderz
09/12 7713
[1][2][3] 4 [5][6][7][8][9][10]..[80]

Copyright 1999-2024 Zeroboard / skin by Hackerschool.org / Secure Patch by Hackerschool.org