# ±¸Á¶Ã¼
±¸Á¶Ã¼°¡ ¹«¾ùÀϱî¿ä?
¿©·¯ºÐÀÌ ¸¸¾à Çб³¿¡¼ Çлý Á¤º¸ °ü¸® ÇÁ·Î±×·¥À» ¸¸µç´Ù°í ÇսôÙ.
±×¸®°í Çлý ÇÑ»ç¶÷´ç ´ÙÀ½°ú °°Àº µ¥ÀÌÅͰ¡ ÀÖ´Ù°í Çϰí, Çлý¼ö´Â
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;
ÀÌ·¸°Ô ÇØ ÁÖ¸é ´õ °£´ÜÇØ Áö°Ô µÇÁÒ.
Previous:Æ÷ÀÎÅÍ 3 (Æ÷ÀÎÅÍ¿Í ¹è¿ÀÇ °ü°è,
Æ÷ÀÎÅÍ·Î ¹®ÀÚ¿ ó¸®, ÇÔ¼ö Æ÷ÀÎÅÍ)
Next:°ø¿ëü, ¿°ÅÇü »ó¼ö, typedef ¹®