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 : 11206 Date : 2004/07/15 07:28
|