À̹ø °Á ¿¡¼´Â Æ÷ÀÎÅÍ¿Í ¹è¿ÀÇ °ü°è¿Í ÇÔ¼ö Æ÷ÀÎÅÍ, ±×¸®°í ±¸Á¶Ã¼¿¡ ´ëÇØ¼µµ ¾Ë¾Æº¸°Ú½À´Ï´Ù.
1. ¹è¿ÀÌ ÀÌ»óÇÏ´Ù? ¹è¿À» »ç¿ëÇÏ´Ù°¡ º¸¸é ÀÌ»óÇÑ Á¡À» ¸¹ÀÌ ¹ß°ßÇϼÌÀ» °Ì´Ï´Ù. ¿¹¸¦ µé¾î scanfÇÔ¼ö·Î Á¤¼ö º¯¼ö¿¡ ¾î¶² Á¤¼ö¸¦ ÀÔ·Â ¹ÞÀ»¶©
int Var; scanf("%d",&Var);
ÀÌ·¸°Ô ÇßÁÒ? ±×·±µ¥ ¹®Àڹ迿¡ ¹®ÀÚ¿À» ÀÔ·Â ¹ÞÀ»¶©
char Var[100]; scanf("%s",Var); ÀÌ·¸°Ô Çß½À´Ï´Ù. ¿Ö ¹®Àڹ迿¡ ¹®ÀÚ¿À» ÀÔ·Â ¹ÞÀ»¶©
scanf("%s",&Var);
ÀÌ·¸°Ô &¸¦ ºÙÀÌÁö ¾Ê¾ÒÀ»±î¿ä? ±×¸®°í ÇÔ¼ö¿¡ °ªÀ» Àü´ÞÇÒ¶§ ¹è¿À» Àü´ÞÇÏ¸é ¿Ö Passing by reference·Î Àü´Þ µÇ¾úÀ»±î¿ä? Á¤¸» ±Ã±ÝÇϽÃÁö ¾Ê½À´Ï±î? ÀÌÀ¯´Â ¹è¿¸íÀÌ Æ÷ÀÎÅÍÀ̱⠶§¹®ÀÌÁÒ. ±×·¯´Ï±î ¹è¿¸íÀº ¹è¿ÀÇ Ã¹¹øÂ° ¿ø¼ÒÀÇ ÁÖ¼Ò¸¦ °¡Áö°í ÀÖ´Â Æ÷ÀÎÅÍ ÀÔ´Ï´Ù. ´Ü ±× ÁÖ¼Ò¸¦ ¹Ù²Ü¼ö ¾øÀ¸¹Ç·Î Æ÷ÀÎÅÍ Áß¿¡¼ »ó¼ö Æ÷ÀÎÅͶó°í ÇÏ¸é µÇ°ÚÁÒ?
2. ¶Ç´Ù¸¥ ¹æ¹ýÀÇ ¹è¿ »ç¿ë. ¿ì¼± ¿¹Á¦¸¦ º¸ÁÒ.
/* ÆÄÀÏ À̸§ : C10-1.C ÇÁ·Î±×·¥ ³»¿ë : Æ÷ÀÎÅÍ¿Í ¹è¿ ¿¹Á¦. */ #include <stdio.h> void main() { int array[10]={ 1, 2, 3, 4, 5, 6, 7, 8, 9, 0 }; int var; var=*array; printf("%d\n",var); }
ÀÌ ¿¹Á¦¿¡¼ array¶ó´Â ¹è¿¿¡ ÂüÁ¶ ¿¬»êÀÚ¸¦ ºÙ¿©¼
var=*array;
ÀÌ·¸°Ô Çߴµ¥, ±×·³ var¿¡´Â ¾î¶² °ªÀÌ µé¾î°¥±î¿ä? ¾Æ±î ¹è¿¸íÀÌ ¹è¿ÀÇ Ã¹¹øÂ° ¿ø¼Ò¸¦ °¡¸£Å°°í ÀÖ´Â Æ÷ÀÎÅͶó°í Çß½À´Ï´Ù. ±×·¯¹Ç·Î ù¹øÂ° ¿ø¼ÒÀÇ °ªÀÎ 1ÀÌ var¿¡ µé¾î°¡°ÚÁÒ? ±×·¯¹Ç·Î 1ÀÌ Ãâ·ÂµÊ´Ï´Ù. ±×·³ ¸¸¾à µÎ¹øÂ° ¿ø¼ÒÀÇ °ªÀ» var¿¡ ³Ö°í ½Í´Ù¸é ¾î¶»°Ô ÇÒ±î¿ä? ¹°·Ð
var=array[1];
ÀÌ·¸°Ô ÇØµµ µÇ°ÚÁö¸¸, Æ÷ÀÎÅ͸¦ ÀÌ¿ëÇÑ ¹æ¹ýÀ¸·Î¿ä. µÎ¹øÂ° ¿ø¼Ò´Â ù¹øÂ° ¿ø¼Ò ÁÖ¼ÒÀÇ ´ÙÀ½ ÁÖ¼Ò¿¡ µé¾îÀÖ½À´Ï´Ù. ±×·¯¹Ç·Î ù¹øÂ° ¿ø¼ÒÀÇ ÁÖ¼Ò¿¡ 1À» ´õÇØÁØ ÁÖ¼Ò¿¡ µé¾îÀÖ°ÚÁÒ? ±×·¡¼
var=*(array+1);
ÀÌ·¸°Ô ÇØ ÁÖ¸é µÊ´Ï´Ù. ±×·±µ¥ intÇüÅ´ 2¹ÙÀÌÆ®ÀÌÁÒ? ±×·³ 2¸¦ ´õÇØ¾ß Çϴµ¥, 1¸¸ ´õÇØ¼ 2¹øÂ° ¿ø¼Ò¸¦ ÀÐÀ»¼ö ÀÖÀ»±î¿ä? CÄÄÆÄÀÏ·¯´Â À̰ÍÀ» ¾Ë¾Æ¼ °è»êÇØ 1À» ´õÇßÁö¸¸ ½ÇÀç·Î´Â 2¸¦ ´õÇØ ÁÜ´Ï´Ù. ±×·¯¹Ç·Î ÇÁ·Î±×·¥ »ó¿¡¼´Â 1¸¸ ´õÇØ ÁÖ¾î¾ß ÇÏÁÒ. ¸¸¾à ¼¼¹øÂ° ¿ø¼Ò¸¦ var¿¡ ³Ö´Â ´Ù¸é
var=*(array+2);
ÀÌ·¸°Ô ÇÏ¸é µÇ°ÚÁÒ? ÀÌ·¸°Ô Çϸé ÄÄÆÄÀÏ·¯°¡ ¾Ë¾Æ¼ 2°¡ ¾Æ´Ñ 4¸¦ ´õÇØ ÁÖ°Ô µÊ´Ï´Ù. ´Ù½ÃÇѹø Á¤¸®Çϸé
*(array+0)Àº array[0] *(array+1)Àº array[1] *(array+2)´Â array[2] . .
ÀÌ·¸°Ô µÇ´Â °ÍÀÌÁÒ.
3. Æ÷ÀÎÅÍ·Î ¹®ÀÚ¿ 󸮸¦? ¹®ÀÚ¿À» ¹è¿ï¶§ Æ÷ÀÎÅͷεµ ¹®ÀÚ¿À» ó¸®ÇÒ¼ö ÀÖ´Ù°í ¹è¿ü½À´Ï´Ù. ±×·±µ¥ ±× ¹æ¹ýÀº ¾ÆÁ÷ ¹è¿ìÁö ¾Ê¾ÒÁÒ? ±×°É Áö±Ý ¼³¸íµå¸®µµ·Ï ÇϰڽÀ´Ï´Ù. »ç½Ç Æ÷ÀÎÅͷδ ¹®ÀÚ¿À» ó¸®ÇѴٱ⠺¸´Ù ±×³É Áö½ÃÇÑ´Ù°í Ç¥ÇöÇÏ´Â °ÍÀÌ ÁÁÀ»°Í °°±º¿ä. ÇÏ¿©Æ° Àß ÀÐ¾î º¸¼¼¿ä. ¹è¿Àº Æ÷ÀÎÅÍ »ó¼öÀÔ´Ï´Ù. ±×·¡¼ ¹®Àڹ迿¡ ¹®ÀÚ¿À» ³ÖÀ»¶§´Â ¹Ýµå½Ã strcpyÇÔ¼ö¸¦ ½á¾ß¸¸ ÇÏÁÒ. ¿¹¸¦ µé¾î char Str[10];
ÀÌ·± ¹®ÀÚ ¹è¿ÀÌ ÀÖÀ»¶§
strcpy(Str,"String");
ÀÌ·±°Ç °¡´ÉÇßÁö¸¸
Str="String";
ÀÌ·±°Ç ºÒ°¡´É ÇÏÁÒ. ÀÌ·¸°Ô ÇÏ¸é »ó¼ö¿¡ °ªÀ» ³Ö´Â °ÍÀ̹ǷΠ°á±¹¿¡´Â
120=2048;
ÀÌ·±°Å³ª ´Ù¸§ ¾ø°Åµç¿ä. ±×·¸Áö¸¸ StrÀ» ¹®ÀÚ¹è¿ÀÌ ¾Æ´Ñ Æ÷ÀÎÅÍ·Î ¼±¾ðÇÏ¸é ¾î¶»°Ô µÉ±î¿ä? Áï
char *Str;
ÀÌ·¸°Ô ¸»ÀÌÁÒ. ÀÌ·¸°Ô Çϸé StrÀº »ó¼ö°¡ ¾Æ´Ñ º¯¼ö°¡ µÇ¹Ç·Î
Str="String";
ÀÌ·±°Ô °¡´ÉÇÕ´Ï´Ù. ÇÏÁö¸¸ ÀÌ°Ç ´Ü¼øÈ÷ "String"¶ó´Â ¹®ÀÚ¿ »ó¼ö°¡ ±â¾ïµÇ¾î ÀÖ´Â ÁÖ¼Ò¸¦ Str¿¡ ³Ö¾î ÁØ °ÍÀÌÁÒ. ¹®Àڹ迷Π¼±¾ðÇßÀ»¶§´Â "String"¶ó´Â ¹®ÀÚ¿À» ³ÖÀ» °ø°£ÀÌ È®º¸µÇ¾î ÀÖÀ¸¹Ç·Î strcpy·Î ¹®ÀÚ¿À» ³Ö´Â°ÍÀÌ °¡´ÉÇÏÁö¸¸, Æ÷ÀÎÅÍ·Î ¼±¾ðÇÑ°Ç ¹®ÀÚ¿À» ³ÖÀ» °ø°£Àº È®º¸ÇÏÁö ¾Ê°í ´ÜÁö ¹®ÀÚ¿ÀÌ ÀÖ´Â ÁÖ¼Ò¸¦ ³ÖÀ» °ø°£¸¸ È®º¸ÇÒ »ÓÀÔ´Ï´Ù. ±×·¯¹Ç·Î StrÀÌ Æ÷ÀÎÅÍ·Î ¼±¾ðµÈ °ÍÀ̶ó¸é
strcpy(Str,"String");
ÀÌ·¸°Ô ÇÒ °æ¿ì À߸øÇÏ´Ù°£ ´Ù¿îÀÌ µÇ¹ö¸®ÁÒ. ±×·¡¼ Æ÷ÀÎÅͷδ ¹®ÀÚ¿ 󸮸¦ ÇÏÁö ¸øÇÏ°í ´ëºÎºÐ ¹®ÀÚ¿À» Áö½ÃÇÒ¶§ ¾²ÀÌ´Â °Í ÀÔ´Ï´Ù.
4. ÇÔ¼ö Æ÷ÀÎÅÍ Áö±Ý±îÁö ¹è¿î Æ÷ÀÎÅÍ´Â ¾î¶² º¯¼öÀÇ ÁÖ¼Ò¸¦ ±â¾ï½ÃŰ´Â Æ÷ÀÎÅÍ¿´½À´Ï´Ù. ±×·±µ¥ ÇÔ¼öÀÇ ÁÖ¼Ò¸¦ ±â¾ï½ÃŰ´Â Æ÷ÀÎÅÍ´Â ¾øÀ»±î¿ä? ´ç¿¬È÷ ÀÖÁÒ. ±×·±µ¥ Áö±Ý±îÁö ¹è¿î Æ÷ÀÎÅͿʹ ¼±¾ðºÎÅÍ »ç¿ë±îÁö ¹æ¹ýÀÌ Á¶±Ý ´Ù¸¨´Ï´Ù. Áö±ÝºÎÅÍ ÀÌ°É ¾Ë¾Æº¼²«µ¥ ÀÌ°É ¹è¿ì±â Àü¿¡ ¿ì¼± ÇѰ¡Áö ¾Ë¾ÆµÎ½Ç °ÍÀÌ ÀÖ½À´Ï´Ù. ¾Æ±î ¹è¿¸íÀÌ »ó¼ö Æ÷ÀÎÅͶó°í Çߴµ¥, ÇÔ¼ö¸íµµ ¹Ù·Î »ó¼ö Æ÷ÀÎÅÍ ÀÔ´Ï´Ù. Áï ÇÔ¼öÀÇ ½ÃÀÛ ÁÖ¼Ò¸¦ ±â¾ïÇϰí ÀÖ´Â »ó¼ö Æ÷ÀÎÅÍ ÀÌÁÒ.
(1) ÇÔ¼ö Æ÷ÀÎÅÍÀÇ ¼±¾ð ÇÔ¼ö Æ÷ÀÎÅÍ ¼±¾ðÀº
¸®ÅÏÇüÅ (*ÇÔ¼öÆ÷ÀÎÅ͸í)([Àμö, Àμö, ...]);
ÀÌ·¸°Ô ÇÕ´Ï´Ù. ¿¹¸¦ µé¾î Á¤¼ö¸¦ ¸®ÅÏÇϰí Àμö´Â ¾ø´Â ÇÔ¼öÀÇ ÁÖ¼Ò¸¦ ³Ö´Â FuncPointer¶ó´Â ÇÔ¼ö Æ÷ÀÎÅÍ´Â int (*FuncPointer)(); ÀÌ·¸°Ô ¼±¾ðÇÕ´Ï´Ù. ÀÌ·¸°Ô ¼±¾ðÇÑ FuncPointer¶ó´Â ÇÔ¼ö Æ÷ÀÎÅÍ¿¡´Â Á¤¼ö¸¦ ¸®ÅÏÇϰí Àμö°¡ ¾ø´Â ÇÔ¼öÀÇ ÁÖ¼Ò¸¸ ³ÖÀ»¼ö ÀÖ°Ô µÇÁÒ.
(2) ÇÔ¼ö Æ÷ÀÎÅÍÀÇ »ç¿ë ÇÔ¼ö Æ÷ÀÎÅÍ¿¡ ÇÔ¼öÀÇ ÁÖ¼Ò¸¦ ³Ö´Â ¹æ¹ýÀº ´ÙÀ½°ú °°½À´Ï´Ù.
ÇÔ¼öÆ÷ÀÎÅÍ = ÇÔ¼ö;
¿¹¸¦ µé¾î ¾Æ±î ³ª¿Ô´ø FuncPointer¶ó´Â ÇÔ¼ö Æ÷ÀÎÅÍ¿¡
int Function() { . . . }
À§¿Í °°Àº FunctionÀ̶ó´Â ÇÔ¼öÀÇ ÁÖ¼Ò¸¦ ±â¾ï½ÃŰ·Á¸é
FuncPointer=Function;
ÀÌ·¸°Ô ÇÏ¸é µÊ´Ï´Ù. ±×·±µ¥ ¿©±â¼ FunctionÀÇ ÁÖ¼Ò¸¦ FuncPointer¿¡ ³ÖÀ¸·Á°í Çϴµ¥ ¿Ö?
FuncPointer=&Function;
ÀÌ·¸°Ô ÁÖ¼Ò ¿¬»êÀÚ¸¦ »ç¿ëÇÏÁö ¾Ê¾ÒÀ»±î¿ä? ¾Æ±î ÇÔ¼ö¸íÀº »ó¼ö Æ÷ÀÎÅͶó°í ÇßÁÒ? ±×·¯¹Ç·Î FunctionÀº Æ÷ÀÎÅÍ À̱⠶§¹®¿¡ &¸¦ ºÙÀÌÁö ¾ÊÀº °Í ÀÔ´Ï´Ù. Æ÷ÀÎÅÍ ¾È¿¡´Â ÁÖ¼Ò°¡ µé¾î ÀÖÀ¸´Ï±î¿ä. ÇÔ¼ö Æ÷ÀÎÅÍ¿¡´Â ÇÔ¼öÀÇ ÁÖ¼Ò°¡ µé¾îÀִµ¥ ±× ÇÔ¼ö¸¦ È£ÃâÇÒ¶§´Â ¾î¶»°Ô ÇÒ±î¿ä? ¾Æ±î ÇÔ¼ö¸íÀº ÇÔ¼öÀÇ ½ÃÀÛ ÁÖ¼Ò°¡ µé¾îÀÖ´Â Æ÷ÀÎÅͶó°í Çß½À´Ï´Ù. ±×·±µ¥ ÇÔ¼ö Æ÷ÀÎÅÍ ¿ª½Ã ÇÔ¼öÀÇ ½ÃÀÛ ÁÖ¼Ò¸¦ ±â¾ï½Ã۰í ÀÖ´Â Æ÷ÀÎÅÍ ÀÌÁÒ. ±×·¯¹Ç·Î ±×³É ÇÔ¼ö È£Ãâ ÇÏ´Â °Í°ú ¶È°°Àº ¹æ¹ýÀ¸·Î È£ÃâÇÏ¸é µÊ´Ï´Ù. ¿¹¸¦ µé¾î À§¿¡ ³ª¿Ô´ø FuncPointer¶ó´Â ÇÔ¼ö Æ÷ÀÎÅÍÀÇ ÇÔ¼ö¸¦ È£ÃâÇÏ·Á¸é
FuncPointer();
ÀÌ·¸°Ô ÇØ ÁÖ¸é µÇ´Â °ÍÀÌÁÒ. À̰ÍÀ¸·Î ÇÔ¼ö Æ÷ÀÎÅÍ¿¡ ´ëÇÑ ³»¿ëÀº ¸¶Ä¡µµ·Ï ÇϰڽÀ´Ï´Ù.
5. ±¸Á¶Ã¼ ±¸Á¶Ã¼°¡ ¹«¾ùÀϱî¿ä? ¿©·¯ºÐÀÌ ¸¸¾à Çб³¿¡¼ Çлý Á¤º¸ °ü¸® ÇÁ·Î±×·¥À» ¸¸µç´Ù°í ÇսôÙ. ±×¸®°í Çлý ÇÑ»ç¶÷´ç ´ÙÀ½°ú °°Àº µ¥ÀÌÅͰ¡ ÀÖ´Ù°í Çϰí, Çлý¼ö´Â 100¸í À̶ó°í ÇսôÙ.
Çгâ, ¹Ý, ¹øÈ£, À̸§, ³ªÀÌ, ÀüȹøÈ£
±×·¸´Ù¸é ¿©·¯ºÐÀ» ¾î¶»°Ô µ¥ÀÌÅ͸¦ ó¸®ÇϽðڽÀ´Ï±î? °¢ µ¥ÀÌÅͺ°·Î 100°³ÀÇ ¿ø¼Ò¸¦ °®´Â ¹è¿À» ¸¸µé¾î ó¸®ÇϽðڽÀ´Ï±î? ±×·¸°Ô ÇÏ¸é º¹ÀâÇØÁöÁÒ? ÀÌ·²¶§ ±¸Á¶Ã¼¸¦ »ç¿ëÇÕ´Ï´Ù. ±¸Á¶Ã¼´Â ÇѰ³ ÀÌ»óÀÇ º¯¼ö¸¦ ¹¾îµÐ °ÍÀ̶ó°í »ý°¢ÇÏ½Ã¸é µÊ´Ï´Ù. ±×·¸°Ô ¹¾î¼ ÇѰ³ÀÇ º¯¼öó·³ Ãë±ÞÇÏ´Â °ÍÀÌÁÒ. ¿¹¸¦ µéÀÚ¸é À§¿Í °°Àº µ¥ÀÌÅ͸¦ ³ÖÀ» º¯¼öµéÀ» Çϳª·Î ¹¾î¼ ÇлýÀ̶ó´Â ±¸Á¶Ã¼¸¦ ¸¸µé¾î »ç¿ëÇϸé 󸮰¡ ½¬¿öÁö°ÚÁÒ?
(1) ±¸Á¶Ã¼ ¸¸µé±â¿Í ±¸Á¶Ã¼ º¯¼ö ±¸Á¶Ã¼¸¦ ÀϹÝÀûÀ¸·Î ´ÙÀ½°ú °°ÀÌ ¸¸µë´Ï´Ù.
struct ±¸Á¶Ã¼À̸§ { µ¥ÀÌÅÍÇüÅ º¯¼ö; µ¥ÀÌÅÍÇüÅ º¯¼ö; . . };
¿©±â¼ {}¾È¿¡ µé¾îÀÖ´Â º¯¼öµéÀÌ ±¸Á¶Ã¼¸¦ ±¸¼ºÇÏ´Â º¯¼ö·Î ¸â¹öº¯¼ö¶ó°í ÇÕ´Ï´Ù. ¿¹¸¦ µé¾î ¾Æ±î Çлý µ¥ÀÌÅ͸¦ ó¸®Çϱâ À§ÇÑ ±¸Á¶Ã¼¸¦ ¸¸µé¸é
struct Student { int Grade; int Class; int Number; char Name[16]; int Age; char Phone[16]; };
ÀÌ·¸°Ô ¸¸µé¾îÁÖ¸é µÇ°ÚÁÒ? ÀÌ·¸°Ô ±¸Á¶Ã¼¸¦ ¸¸µé¾úÀ¸¸é »ç¿ëÇØ¾ß Çϴµ¥, ¿©±â¼ ¸¸µç°É ±×³É »ç¿ëÇÏ´Â °ÍÀÌ ¾Æ´Õ´Ï´Ù. ¿©±â¼ ¸¸µç°Ç ´ÜÁö ±× ±¸Á¶Ã¼°¡ ¾î¶² ¸â¹öº¯¼ö·Î ±¸¼ºµÇ¾î ÀÖ´ÂÁö Çü½ÄÀ» ¸¸µé¾î ÁØ °Í »ÓÀ̰ŵç¿ä. ±×·¯¹Ç·Î »ç¿ëÇϱâ À§Çؼ± ±× Çü½Ä¿¡ ¸ÂÃß¾î ±â¾ï Àå¼ÒµéÀ» ¸¶·ÃÇÏ¿© º¯¼ö¸¦ ¸¸µé¾î »ç¿ëÇØ¾ß ÇÕ´Ï´Ù. À̶§ ¸¸µå´Â º¯¼ö¸¦ ±¸Á¶Ã¼ º¯¼ö¶ó°í ÇÏÁÒ. ±¸Á¶Ã¼ º¯¼ö¸¦ ¸¸µå´Â °ÍÀº °£´ÜÇÕ´Ï´Ù. ´ÙÀ½°ú °°ÀÌ ÇÏ¸é µÇÁÒ.
struct ±¸Á¶Ã¼À̸§ ±¸Á¶Ã¼º¯¼ö[, ±¸Á¶Ã¼º¯¼ö, ...];
¿¹¸¦ µé¾î À§¿¡ ÀÖ´Â Student¶ó´Â ±¸Á¶Ã¼¿¡ ´ëÇÑ ±¸Á¶Ã¼ º¯¼ö s¸¦ ¼±¾ðÇÏ·Á¸é
struct Student s;
ÀÌ·± ½ÄÀ¸·Î ÇØ ÁÖ¸é µÊ´Ï´Ù. ±¸Á¶Ã¼ º¯¼ö´Â ±¸Á¶Ã¼¸¦ ¸¸µé¶§ °°ÀÌ ¸¸µé¾î ÁÙ¼öµµ Àִµ¥ ¹æ¹ýÀº ´ÙÀ½°ú °°ÀÌ ÇÏ¸é µÊ´Ï´Ù.
struct [±¸Á¶Ã¼À̸§]
{ µ¥ÀÌÅÍÇüÅ º¯¼ö; µ¥ÀÌÅÍÇüÅ º¯¼ö; . . } ±¸Á¶Ã¼º¯¼ö[, ±¸Á¶Ã¼º¯¼ö, ...];
¿¹¸¦ µé¾î ¾Æ±î ³ª¿Ô´ø Student¶ó´Â ±¸Á¶Ã¼¸¦ ¸¸µé¸é¼ s¶ó´Â ±¸Á¶Ã¼ º¯¼öµµ °°ÀÌ ¼±¾ðÇÑ´Ù¸é
struct Student { int Grade; int Class; int Number; char Name[16]; int Age; char Phone[16]; } s;
ÀÌ·¸°Ô ÇØ ÁÖ¸é µÊ´Ï´Ù. ±×¸®°í ÀÌ·¸°Ô ±¸Á¶Ã¼¿Í ±¸Á¶Ã¼ º¯¼ö¸¦ °°ÀÌ ¼±¾ðÇÒ¶§´Â ±¸Á¶Ã¼À̸§À» ¾²Áö ¾Ê¾Æµµ µÊ´Ï´Ù. Áï À§ÀÇ °ÍÀº struct { int Grade; int Class; int Number; char Name[16]; int Age; char Phone[16]; } s; ÀÌ·¸°Ô ½áµµ µÈ´Ù´Â °ÍÀÌÁÒ. ÇÏÁö¸¸ ÀÌ·¸°Ô Çϸé
struct ±¸Á¶Ã¼À̸§ ±¸Á¶Ã¼º¯¼ö[, ±¸Á¶Ã¼º¯¼ö, ...];
ÀÌ·± ½ÄÀ¸·Î´Â ±¸Á¶Ã¼ º¯¼ö¸¦ ¸¸µé¼ö ¾ø°Ô µÇ°ÚÁÒ? ÀÌÀ¯´Â ¾µ ±¸Á¶Ã¼À̸§ÀÌ ¾øÀ¸´Ï±î¿ä.
(2) ±¸Á¶Ã¼ º¯¼öÀÇ »ç¿ë ÀÌÁ¦ ±¸Á¶Ã¼ º¯¼ö¸¦ ¼±¾ðÇÏ´Â °Í±îÁö ¹è¿üÀ¸´Ï ±¸Á¶Ã¼ º¯¼ö¸¦ »ç¿ëÇÏ´Â ¾Ë¾Æ¾ß °ÚÁÒ? ±¸Á¶Ã¼ º¯¼ö ¾È¿¡´Â ÇѰ³ ÀÌ»óÀÇ ¸â¹ö º¯¼ö°¡ µé¾î ÀÖÁÒ? ±¸Á¶Ã¼ º¯¼ö¸¦ »ç¿ëÇÑ´Ù´Â ¸»Àº ±× ¸â¹ö º¯¼ö¸¦ »ç¿ëÇÑ´Ù´Â ¸»ÀÌ µÊ´Ï´Ù. »ç¿ëÀº ´ÙÀ½°ú °°ÀÌ ÇÏÁÒ. ±¸Á¶Ã¼º¯¼ö.¸â¹öº¯¼ö = °ª; º¯¼ö = ±¸Á¶Ã¼º¯¼ö.¸â¹öº¯¼ö;
¿¹¸¦ µé¾î ¾Æ±î ±× Student¶ó´Â ±¸Á¶Ã¼ÀÇ º¯¼ö¸¦ struct Student s;
ÀÌ·¸°Ô ¼±¾ðÇß´Ù°í ÇսôÙ. ±×¸®°í ÀÌ ±¸Á¶Ã¼ º¯¼öÀÇ ¸â¹ö º¯¼öÁß Class¿¡ 5À» ³ÖÀ¸·Á¸é
s.Class=5;
ÀÌ·¸°Ô ÇÏ¸é µÇ°í, NameÀ̶ó´Â ¸â¹ö º¯¼ö¿¡ "AAA"¸¦ ³ÖÀ¸·Á¸é strcpy(s.Name,"AAA");
ÀÌ·¸°Ô ÇÏ´Â °Í ÀÔ´Ï´Ù.
(3) ±¸Á¶Ã¼ º¯¼öÀÇ ÃʱⰪ ±¸Á¶Ã¼ º¯¼ö¿¡µµ °ú¿¬ ÃʱⰪÀ» ÁÙ¼ö ÀÖÀ»±î¿ä? ´ç¿¬È÷ ÇÒ¼ö ÀÖ°ÚÁÒ? ¹æ¹ýÀº ¹è¿¿¡ ÃʱⰪ ÁÖ´Â °Í°ú ºñ½ÁÇÕ´Ï´Ù. ´ÙÀ½°ú °°ÀÌ ÇÏ¸é µÇÁÒ.
struct ±¸Á¶Ã¼À̸§ ±¸Á¶Ã¼º¯¼ö = { ù¹øÂ° ¸â¹öº¯¼öÀÇ ÃʱⰪ, µÎ¹øÂ° ¸â¹öº¯¼öÀÇ ÃʱⰪ, ... };
¿¹¸¦ µé¾î ¾Æ±î ³ª¿Ô´ø
struct Student { int Grade; int Class; int Number; char Name[16]; int Age; char Phone[16]; }; ÀÌ·± ±¸Á¶Ã¼°¡ ÀÖÀ»¶§ s¶ó´Â ±¸Á¶Ã¼ º¯¼ö¸¦ ÃʱⰪÀ» ÁÖ¾î ¼±¾ðÇϸé
struct Student s = { 1, 5, 10, "AAA", 14, "000-0000" };
ÀÌ·¸°Ô ÇÕ´Ï´Ù. À̶§ s.Grade¿¡´Â 1ÀÌ, s.Class¿¡´Â 5°¡, s.Number¿¡´Â 10ÀÌ, s.Name¿¡´Â "AAA"°¡, s.Age¿¡´Â 14°¡, s.Phone¿¡´Â "000-0000"ÀÌ µé¾î°¡°Ô µÇ´Â °ÍÀÌÁÒ.
(4) ±¸Á¶Ã¼ ¹è¿ ±¸Á¶Ã¼ ¿ª½Ã ¹è¿À» ¸¸µé¼ö ÀÖ½À´Ï´Ù. ¹æ¹ýÀº ´Ù¸¥ ¹è¿µé°ú ¶È°°Àº Çü½ÄÀ¸·Î ¸¸µé¸é µÇÁÒ. ±×·¯´Ï±î
struct ±¸Á¶Ã¼À̸§ ±¸Á¶Ã¼¹è¿¸í[Å©±â];
ÀÌ·¸°Ô ÇØ¼ ¸¸µé¼ö ÀÖ½À´Ï´Ù. 2Â÷¿ø ±¸Á¶Ã¼ ¹è¿Àº
struct ±¸Á¶Ã¼À̸§ ±¸Á¶Ã¼¹è¿¸í[Å©±â][Å©±â];
ÀÌ·¸°Ô Çϰí¿ä. 3Â÷¿øÀº ÀÌÁ¦ ¼³¸í ¾ÈÇØµµ ¾Æ½Ã°ÚÁÒ?
±¸Á¶Ã¼ ¹è¿ ¼±¾ðÀÇ ¿¹¸¦ µé¾î º¸ÁÒ. À§¿¡ ³ª¿Â Student¶ó´Â ±¸Á¶Ã¼ÀÇ ¹è¿·Î 10°³ÀÇ ¿ø¼Ò¸¦ °¡Áö°í ÀÖ°í À̸§ÀÌ sarrayÀÎ °ÍÀº
struct Student sarray[10];
ÀÌ·¸°Ô ¼±¾ðÇÏ¸é µÊ´Ï´Ù. ±¸Á¶Ã¼ ¹è¿ÀÇ »ç¿ë ¿ª½Ã ´Ù¸¥ ¹è¿µé°ú ¶È°°Àº Çü½ÄÀ¸·Î ÇØ ÁÖ¸é µÊ´Ï´Ù. Áï ´ÙÀ½°ú °°ÀÌ ÇÏ¸é µÇÁÒ.
±¸Á¶Ã¼¹è¿¸í[÷ÀÚ].¸â¹öº¯¼ö = °ª; º¯¼ö = ±¸Á¶Ã¼¹è¿¸í[÷ÀÚ].¸â¹öº¯¼ö; 2/3Â÷¿ø ±¸Á¶Ã¼ ¹è¿ÀÇ »ç¿ë¹ýÀº ¹¹ ¼³¸íÀÌ ÇÊ¿ä ¾øÁÒ? ±×·³ ¿¹¸¦ µé¾î À§¿¡ ³ª¿Â sarray¶ó´Â ±¸Á¶Ã¼ ¹è¿ÀÇ ¼¼¹øÂ° ¿ø¼ÒÀÇ Class¶ó´Â ¸â¹ö¿¡ 5¸¦ ³ÖÀ¸·Á¸é
sarray[2].Class=5;
ÀÌ·¸°Ô ÇÏÁÒ.
(5) ±¸Á¶Ã¼ Æ÷ÀÎÅÍ ±¸Á¶Ã¼ Æ÷ÀÎÅ͵µ ¿ª½Ã ´Ù¸¥ Æ÷ÀÎÅÍ µé°ú ¶È°°Àº Çü½ÄÀ¸·Î ¼±¾ðÇØ ÁÖ¸é µÊ´Ï´Ù.
struct ±¸Á¶Ã¼À̸§* ±¸Á¶Ã¼Æ÷ÀÎÅ͸í;
¿¹¸¦ µé¾î À§¿¡ ³ª¿Â Student¶ó´Â ±¸Á¶Ã¼ÀÇ Æ÷ÀÎÅÍ·Î À̸§ÀÌ spointerÀÎ °ÍÀº
struct Student* spointer;
ÀÌ·¸°Ô ¼±¾ðÇÕ´Ï´Ù. ±¸Á¶Ã¼ Æ÷ÀÎÅÍÀÇ »ç¿ëÀº ÀÏ¹Ý Æ÷ÀÎÅÍ¿Í ºñ½ÁÇÕ´Ï´Ù. ¿¹¸¦ µé¾î ´ÙÀ½°ú °°ÀÌ ±¸Á¶Ã¼ º¯¼ö¿Í ±¸Á¶Ã¼ Æ÷ÀÎÅ͸¦ ¼±¾ðÇß´Ù°í ÇսôÙ.
struct Student s; struct Student spointer;
À̶§ spointer¶ó´Â ±¸Á¶Ã¼ Æ÷ÀÎÅÍ¿¡ s¶ó´Â ±¸Á¶Ã¼ º¯¼öÀÇ ÁÖ¼Ò¸¦ ³ÖÀ»¶© ÁÖ¼Ò¿¬»êÀÚ¸¦ »ç¿ëÇÏ¿©
spointer=&s;
ÀÌ·¸°Ô ÇØ ÁÖ¸é µÇÁÒ. ±×·³ spointer¿¡ ÀúÀåµÇ¾î ÀÖ´Â ±¸Á¶Ã¼ º¯¼öÀÇ ÁÖ¼Ò¿¡ ±â¾ïµÈ ³»¿ëµéÀ» »ç¿ëÇÒ¶§´Â ¾î¶»°Ô ÇÒ±î¿ä? ÀÌ¹Ì ¹è¿î ÂüÁ¶ ¿¬»êÀÚ¸¦ »ç¿ëÇØ
*spointer.Grade=1; *spointer.Class=5;
ÀÌ·± ½ÄÀ¸·Î ÇÏ¸é µÉ±î¿ä? ÀÌ·¸°Ô Çϸé Àý´ë ¾ÊµÊ´Ï´Ù. ÀÌÀ¯´Â óÀ½ ¼³¸íÇÏ´Â °ÍÀÌÁö¸¸ ÂüÁ¶ ¿¬»êÀÚ(*)º¸´Ù ¸â¹ö ¿¢¼¼½º ¿¬»êÀÚ(.)°¡ ¿ì¼± ¼øÀ§°¡ ³ô±â ¶§¹®ÀÌÁÒ. ±×·¯¹Ç·Î ¿¡·¯°¡ ¹ß»ýÇÕ´Ï´Ù. ÀÌ°É ÇØ°áÇϱâ À§Çؼ± ()¸¦ »ç¿ëÇØ ÂüÁ¶ ¿¬»êÀ» ¸ÕÀú ½ÇÇàÇÏ°Ô Çϸé ÇØ°áÀÌ µÊ´Ï´Ù. ±×·¯´Ï±î À§ÀÇ °ÍµéÀº
(*spointer).Grade=1; (*spointer).Class=5;
ÀÌ·¸°Ô ÇØ ÁÖ¸é µÇ´Â °ÍÀÌÁÒ. ±×·±µ¥ ÀÌ·¸°Ô ¾²´Â°Ç Á» º¹ÀâÇÏÁÒ.
ÀÌ°É Á» ÆíÇÏ°Ô ¾²±â À§ÇÑ ¿¬»êÀÚ°¡ Àִµ¥ ¹Ù·Î ->ÀÌÁÒ. »ç¿ëÀº
±¸Á¶Ã¼Æ÷ÀÎÅÍ->¸â¹öº¯¼ö = °ª; º¯¼ö = ±¸Á¶Ã¼Æ÷ÀÎÅÍ->¸â¹öº¯¼ö; ÀÌ·¸°Ô ÇÕ´Ï´Ù. ¿¹¸¦ µé¾î À§¿¡ ³ª¿Ô´ø °ÍµéÀº
spointer->Grade=1; spointer->Class=5;
ÀÌ·¸°Ô ÇØ ÁÖ¸é ´õ °£´ÜÇØ Áö°Ô µÇÁÒ.
À̰ÍÀ¸·Î ÀÌ¹Ý °Á´ ¸¶Ä¡µµ·Ï ÇϰڽÀ´Ï´Ù. ´ÙÀ½ °Á¿¡¼´Â °ø¿ëü¿Í, ¿°ÅÇü »ó¼öµîÀ» ¹è¿ìµµ·Ï ÇϰڽÀ´Ï´Ù.
|