ÃÑ ÆäÀÌÁö ¼ö : 3224
![]()
|
Facebook Joinc ±×·ì
Joinc QA »çÀÌÆ®
![]()
Tweet
joinc´Â Firefox¿Í chrome¿¡¼ Å×½ºÆ® Çß½À´Ï´Ù. IE¿¡¼´Â Å×À̺íÀÌ ±úÁö°Å³ª À̹ÌÁö°¡ º¸ÀÌÁö ¾ÊÀ» ¼ö ÀÖ½À´Ï´Ù. ƯÈ÷ ±¸±Û DocsÀ̹ÌÁöÀÇ °æ¿ì ¿¢¹Úó¸®µÉ ¼ö ÀÖ½À´Ï´Ù. 1 ¿ø½Ãµ¥ÀÌÅÍ Å¸ÀÔ
C ¾ð¾î´Â ¸Å¿ì ±âº»ÀûÀ¸·Î »ç¿ëÇÏ´Â 5°¡Áö Á¤µµÀÇ ¿ø½Ã µ¥ÀÌÅÍ Å¸ÀÔÀ̶ó´Â °ÍÀ» °¡Áö°í ÀÖ´Ù´Â °ÍÀ» ¾Õ¼ ¹è¿ü´Ù. ÀÌµé ±âº» ŸÀÔÀº ´ÙÀ½°ú °°Àº °ÍµéÀÌ´Ù.
2 ¿ø½Ãµ¥ÀÌÅÍ Å¸ÀÔÀÇ ±¸Á¶È
Àΰ£ÀÌ ´Ù·ç´Â µ¥ÀÌÅÍ·Î º¸ÀÚ¸é, ¼ýÀÚ,¹®ÀÚ,µµÇü¸¸ À־ ¸ðµç Á¤º¸¸¦ ´Ù·ê ¼ö ÀÖ±â´Â ÇÏ´Ù. ±×·¸Áö¸¸ ³Ê¹«³ª ºñÈ¿À²ÀûÀÌ´Ù. ±×·¡¼, ÀÌµé µ¥ÀÌÅÍ Å¸ÀÔÀ» ±¸Á¶ÈÇØ¼ »õ·Î¿î µ¥ÀÌÅÍ Å¸ÀÔÀ» ¸¸µé¾î¼ »ç¿ëÇÏ°Ô µÈ´Ù. ¿¹¸¦ µéÀÚ¸é, ÁÖ¼Ò Á¤º¸¸¦ °ü¸®Çϱâ À§Çؼ ÁÖ¼Ò·ÏÀ» ¸¸µé°í, °³ÀνŻó°ü¸®¸¦ À§Çؼ ½Å»óÄ«µå¸¦ ¸¸µé¾î¼ »ç¿ëÇÏ´Â °ÍÀÌ´Ù. ÀÌ·¸°Ô ±¸Á¶ÈÇÏ°Ô µÇ¸é, Á¤º¸¸¦ ÈξÀ ±ò²ûÇÏ°Ô ´Ù·ê ¼ö ÀÖ°Ô µÈ´Ù.
¸¸¾à À¯ÀúÁ¤º¸¸¦ °ü¸®ÇÒ ¸ñÀûÀ̶ó¸é, ¾Æ·¡¿Í °°ÀÌ µ¥ÀÌÅ͸¦ ±¸Á¶È ÇÒ ¼ö ÀÖÀ» °ÍÀÌ´Ù. +--- User Info -----------------------+ | Name : Text | | Age : Number | | Address : Text | | Email : Text | | Home : Text | +--------------------------------------+Text¿Í Number¸¸À¸·Î À¯ÀúÁ¤º¸ °ü¸®¸¦ À§ÇÑ User Info¶ó´Â »õ·Î¿î µ¥ÀÌÅÍ Å¸ÀÔÀ» ¸¸µé¾ú´Ù. 3 ±¸Á¶Ã¼
C¾ð¾îµµ ¿ø½Ãµ¥ÀÌÅÍ Å¸ÀÔÀ» ±¸Á¶ÈÇØ¼ »õ·Î¿î µ¥ÀÌÅÍ Å¸ÀÔÀ» ¸¸µé ¼ö ÀÖµµ·Ï Áö¿øÇϰí ÀÖ´Ù. À̰ÍÀ» ¿ì¸®´Â ±¸Á¶Ã¼(Structure)¶ó°í ÇÑ´Ù. ±¸Á¶Ã¼´Â ´ÙÀ½°ú °°Àº ¹æ½ÄÀ¸·Î ¸¸µé ¼ö ÀÖ´Ù. struct ±¸Á¶Ã¼À̸§
{
µ¥ÀÌÅÍŸÀÔ º¯¼ö¸í;
µ¥ÀÌÅÍŸÀÔ º¯¼ö¸í;
µ¥ÀÌÅÍŸÀÔ º¯¼ö¸í;
};
À§¿¡¼ ¿¹·Î µé¾ú´ø, À¯ÀúÁ¤º¸¸¦ ±¸Á¶Ã¼·Î ¸¸µé¾î º¸µµ·ÏÇÏÀÚ. À̸§Àº ¹®ÀÚ¿ÀÌ µé¾î°¡°Ô µÇ¹Ç·Î charÀÇ ¹è¿À̳ª Æ÷ÀÎÅÍÇü½ÄÀ¸·Î ¼±¾ðÇØ¾ß ÇÒ °ÍÀÌ´Ù. Æ÷ÀÎÅÍ´Â Á» ±ÍÂúÀ¸´Ï, ¸ðµç ¹®ÀÚ¿Àº charÀÇ ¹è¿·Î Çϵµ·Ï ÇϰڴÙ. ³ªÀÌ´Â intÇüÀ¸·Î ÇÏ¸é µÉ°ÍÀ̰í, ÁÖ¼Ò, À̸ÞÀÏ, ȨÆäÀÌÁö´Â ¸ðµÎ char ¹è¿·Î ÇÏ¸é ¹®Á¦¾øÀ» °ÍÀÌ´Ù. struct userInfo
{
char name[12];
int age;
char address[80];
char email[40];
char home[40];
};
±¸Á¶Ã¼´Â ³»ºÎÀûÀ¸·Î ÀÚ½ÅÀÌ »ç¿ëÇÒ º¯¼öµéÀ» À¯ÁöÇÏ°Ô µÇ´Âµ¥, ÀÌ·¯ÇÑ º¯¼ö¸¦ ¸â¹öº¯¼ö¶ó°í ÇÑ´Ù. 4 ±¸Á¶Ã¼ÀÇ Á¤ÀÇ, ¼±¾ð ±×¸®°í »ç¿ë
±¸Á¶Ã¼´Â ¿ø½Ãµ¥ÀÌÅÍ Å¸ÀÔÀ» ¿ä¼Ò·Î °¡Áö´Â »ç¿ëÀÚ Á¤ÀÇ µ¥ÀÌÅÍŸÀÔÀ¸·Î º¼ ¼ö ÀÖ´Ù. ±×·¯¹Ç·Î ´Ù¸¥ ¿ø½Ãµ¥ÀÌÅÍ Å¸ÀÔ°ú ¸¶Âù°¡Áö·Î ¼±¾ðÇØ¼ »ç¿ëÇÏ¸é µÈ´Ù. ±×·¯³ª »ç¿ëÀÚ Á¤ÀÇ µ¥ÀÌÅÍ Å¸ÀÔÀ̱⠶§¹®¿¡, ±¸Á¶Ã¼ÀÇ ±¸Á¶¸¦ ¸ÕÀú Á¤ÀÇÇØÁà¾ß ÇÑ´Ù. Àλç±â·Ï Ä«µå¸¦ ¸¸µé·Á¸é, Ä«µå¿¡ ¾î¶² ³»¿ëÀÌ µé¾î°¡¾ß ÇÏ´ÂÁö¸¦ ¸ÕÀú Á¤ÀÇÇØ¾ß Çϴ°Ͱú ¸¶Âù°¡Áö´Ù.
±¸Á¶Ã¼ÀÇ Á¤ÀÇ´Â À§¿¡¼ ÀÌ¹Ì ¼³¸íÇѹٰ¡ ÀÖ´Ù. ÀÌÁ¦ Á¤ÀǸ¦ ÇÏ´Â À§Ä¡°¡ ¹®Á¦°¡ µÇ´Âµ¥, ±¸Á¶Ã¼´Â ÇÁ·Î±×·¥ Àüü¿¡¼ ¼±¾ðµÇ°í »ç¿ëµÉ ¼ö ÀÖÀ¸¹Ç·Î, ±Û·Î¹ú¿µ¿ª¿¡¼ Á¤Àǰ¡ µÈ´Ù. ¿¹¸¦ µéÀÚ¸é ¾Æ·¡¿Í °°´Ù. // userInfo ±¸Á¶Ã¼¸¦ Á¤ÀÇÇÑ´Ù.
struct userInfo
{
char name[12];
int age;
char address[80];
char email[40];
char home[40];
};
int main()
{
struct userInfo MyUser;
}
¼±¾ðÀº ÀϹݵ¥ÀÌÅÍŸÀÔ°ú ¸¶Âù°¡Áö´Ù. ±¸Á¶Ã¼ÀÇ À̸§µÚ¿¡ º¯¼ö¸íÀ» Àû¾îÁÖ¸é µÈ´Ù. struct userInfo Myuser;
ÀÌ·¸°Ô Á¤ÀÇ¿Í ¼±¾ðÀÌ ³¡³µ´Ù¸é, ÀÌÁ¦ »ç¿ëÇÏ´Â Àϸ¸ ³²¾Ò´Ù. ±¸Á¶Ã¼´Â ´Ù¸¥ ¿ø½Ã µ¥ÀÌÅÍ Å¸ÀÔµé°ú´Â ´Þ¸®, ³»ºÎ¿¡ ¸â¹öº¯¼ö¸¦ °¡Áø´Ù. ±×·¯¹Ç·Î °¢°¢ÀÇ ¸â¹öº¯¼öº°·Î Á¢±ÙÇÒ ¼ö ÀÖ¾î¾ß ÇÑ´Ù.
C ¾ð¾î´Â ¸â¹ö ¿¬»êÀÚ "."À» ÀÌ¿ëÇØ¼ ¸â¹öº¯¼ö¿¡ Á¢±ÙÇÒ ¼ö ÀÖµµ·Ï Çϰí ÀÖ´Ù. userInfo ±¸Á¶Ã¼ ¼±¾ðÀÎ MyUser¿¡¼ °¢°¢ÀÇ ¸â¹öº¯¼ö´Â ´ÙÀ½°ú °°ÀÌ Á¢±ÙÇÒ ¼ö ÀÖ´Ù. strcpy(MyUser.name, "yundream\0"); MyUser.age = 33; strcpy(MyUser.email, "yundream@gmail.com\0"); strcpy(MyUser.home, "http://www.joinc.co.kr\0"); 5 ±¸Á¶Ã¼¿Í ¹è¿
¾î·Æ°Ô »ý°¢ÇÒ ÇÊ¿ä´Â ¾ø´Ù. ±¸Á¶Ã¼µµ µ¥ÀÌÅÍ Å¸ÀÔÀ̹ǷÎ, ´Ù¸¥ ¿ø½Ã µ¥ÀÌÅÍó·³ ¹è¿À» ÀÌ¿ëÇØ¼ µ¿ÀÏÇÏ°Ô ±¸Á¶ÈÇÒ ¼ö ÀÖ´Ù. ¸¸¾à À¯ÀúÁ¤º¸¸¦ 5°³¸¦ ÀúÀåÇÏ´Â ÇÁ·Î±×·¥À» ¸¸µç´Ù¸é, ´ÙÀ½°ú °°ÀÌ ¹è¿·Î ¼±¾ðÇÏ¸é µÈ´Ù. struct userInfo Myuser[5];
Á¢±Ù ¿ª½Ã ¹è¿Ã·ÀÚ¸¦ ÀÌ¿ëÇϸéµÈ´Ù. strcpy(MyUser[0].name, "yundream\0"); MyUser[0].age = 33; strcpy(MyUser[0].email, "yundream@gmail.com\0"); strcpy(MyUser[0].home, "http://www.joinc.co.kr\0");
¾ÆÁÖ °£´ÜÇÏ´Ù. 6 ±¸Á¶Ã¼¿Í Æ÷ÀÎÅÍ
¹è¿°ú Æ÷ÀÎÅÍ´Â ¸Þ¸ð¸® »ó¿¡¼ ±Ùº»ÀûÀ¸·Î µ¿ÀÏÇÑ ±¸Á¶¸¦ °¡Áø´Ù´Â °ÍÀ» ¹è¿ü´Ù. ±¸Á¶Ã¼¸¦ ¹è¿·Î ´Ù·ê ¼ö ÀÖÀ¸´Ï, ¸¶Âù°¡Áö·Î Æ÷ÀÎÅͷεµ ´Ù·ê ¼ö ÀÖÀ¸¸ç, »ç¿ëÇÏ´Â ¹æ¹ýµµ 10Àå¿¡¼ ¹è¿ü´ø°Í°ú µ¿ÀÏÇÏ´Ù.
Âü, ´Ù¸¥ ¿ø½Ãµ¥ÀÌÅÍ Å¸ÀÔ°ú ´Ù¸¥Á¡ÀÌ ÀÖ´Ù. ±¸Á¶Ã¼´Â ¸â¹öº¯¼ö¸¦ °¡Áö°í Àֱ⠶§¹®ÀÌ´Ù. ¾Õ¿¡¼ ±¸Á¶Ã¼ÀÇ ¸â¹öº¯¼ö¿¡ Á¢±ÙÇϱâ À§Çؼ ¸â¹ö¿¬»êÀÚ .¸¦ »ç¿ëÇÏ¸é µÈ´Ù´Â °ÍÀ» ¹è¿ü´Ù. ±×·¯³ª ±¸Á¶Ã¼¸¦ Æ÷ÀÎÅÍ·Î ¼±¾ðÇßÀ» °æ¿ì¿¡´Â ¸â¹ö¿¬»êÀÚ¸¦ »ç¿ëÇÒ ¼ö°¡ ¾ø´Ù. ¸â¹ö¿¬»êÀÚ´Â °ªÀ» °¡Á®¿À±â À§Çؼ »ç¿ëÇÏ´Â ¿¬»êÀÚÀε¥, Æ÷ÀÎÅÍ´Â °ªÀÌ ¾Æ´Ñ ÁÖ¼Ò¸¦ ´Ù·ç±â ¶§¹®ÀÌ´Ù. ±×·¯¹Ç·Î ÁÖ¼Ò°¡ °¡¸®Å°´Â °÷ÀÇ °ªÀ» °¡Á®¿À±â À§ÇÑ »õ·Î¿î ¿¬»êÀÚ°¡ ÇÊ¿äÇÏ°Ô µÈ´Ù. C´Â ±¸Á¶Ã¼ ¸â¹öº¯¼öÀÇ Æ÷ÀÎÅÍ¿¬»êÀ» À§Çؼ ÂüÁ¶¿¬»êÀÚ¶ó´Â °ÍÀ» Á¦°øÇÑ´Ù. ÂüÁ¶¿¬»êÀÚ´Â ->¸¦ »ç¿ëÇÏ¸é µÈ´Ù. strcpy(MyUser->name, "yundream\0"); MyUser->age = 33; strcpy(MyUser->email, "yundream@gmail.com\0");
´ç¿¬ÇÏÁö¸¸, Æ÷ÀÎÅÍ´Â ÁÖ¼Ò¸¸ °¡¸®Å°´Â µµ±¸À̹ǷÎ, ½ÇÁ¦ µ¥ÀÌÅ͸¦ ÀúÀåÇϱâ À§Çؼ´Â ¸Þ¸ð¸®¸¦ ÇÒ´çÇØ¾ß¸¸ ÇÑ´Ù. ¸Þ¸ð¸® ÇÒ´çÀº malloc(3) ÇÔ¼ö¸¦ ÀÌ¿ëÇÏ¸é µÈ´Ù. ¾Æ·¡ ÄÚµå´Â userInfo ±¸Á¶Ã¼¸¦ Æ÷ÀÎÅÍ·Î ¼±¾ðÇÑ´ÙÀ½, 5°³ÀÇ userInfo Á¤º¸¸¦ ÀúÀåÇÒ ¼ö ÀÖµµ·Ï ¸Þ¸ð¸®¸¦ ÇÒ´çÇÏ´Â ÇÁ·Î±×·¥ÀÌ´Ù. ¸Þ¸ð¸®¸¦ ÇÒ´çÇϱâ À§Çؼ´Â ±¸Á¶Ã¼ÀÇ Å©±â¸¦ ¾Ë¾Æ¾ß ÇÒ°ÍÀε¥, ´Ù¸¥ µ¥ÀÌÅÍ Å¸ÀÔ°ú ¸¶Âù°¡Áö·Î sizeof¸í·ÉÀ» ÀÌ¿ëÇØ¼ ¾Ë¾Æ³¾ ¼ö ÀÖ´Ù. #include <unistd.h>
#include <stdlib.h>
struct userInfo
{
char name[12];
int age;
char address[80];
char email[40];
char home[40];
};
int main()
{
struct userInfo *MyUser;
printf("structure Size is %d\n", sizeof(struct userInfo));
MyUser = (struct userInfo *)malloc(sizeof(struct userInfo) * 5);
}
7 ¿¹Á¦ ÇÁ·Î±×·¥
±×·³ °£´ÜÇÑ ¿¹Á¦ ÇÁ·Î±×·¥À» ¸¸µé¾î º¸µµ·ÏÇÏÀÚ. ÀÌ ÇÁ·Î±×·¥Àº »ç¿ëÀÚ Á¤º¸¸¦ ÀԷ¹޾Ƽ Ãâ·ÂÇÏ´Â ÀÏÀ» ÇÑ´Ù. ÀԷ¹޴ Á¤º¸´Â ´ÙÀ½°ú °°´Ù.
struct userinfo
{
char name[20];
int age;
};
³ªÀÌ´Â 100»ìÀ» ³Ñ±â±â Èûµé °ÍÀÌ´Ù. ±×·¯¹Ç·Î age º¯¼öÀÇ °æ¿ì short int·Î Á¤ÀǸ¦ ÇÒ ¼öµµ ÀÖÀ» °ÍÀÌ´Ù. short int´Â 2byteÀ̹ǷΠ4byteÀÇ age¿¡ ºñÇØ¼ 2byteÀÇ Å©±â¸¦ Àý¾àÇÒ ¼ö ÀÖÀ»°ÍÀ̶ó°í »ý°¢ÇÒ ¼ö ÀÖ´Ù. ÇÏÁö¸¸ ´Ù¸¥ ¿©·¯°¡Áö ÀÌÀ¯µé ¶§¹®¿¡, ²À ¸Þ¸ð¸® Å©±â¸¦ Àý¾àÇÒ ¼ö ÀÖ´Â °ÍÀº ¾Æ´Ï´Ù. ÀÌ¿¡ ´ëÇÑ ³»¿ëÀº µû·Î ±âȸ°¡ µÇ¸é ´Ù·çµµ·Ï ÇϰڴÙ. ¿ì¼±Àº ±×³É intÇüÀ¸·Î ÇϰڴÙ.
»ç¿ëÀÚ Á¤º¸´Â 5°³±îÁö¸¸ ÀÔ·ÂÇϵµ·Ï ÇϰڴÙ. #include <stdio.h>
#include <string.h>
struct userinfo
{
char name[20];
int age;
};
int main(int argc, char **argv)
{
int age;
int i;
char buf[40];
struct userinfo myfriend[5];
for (i = 0; i < 5; i++)
{
printf("Name : ");
fgets(buf, 19, stdin);
buf[strlen(buf)-1] = '\0'; // <--- 1
sprintf(myfriend[i].name, "%s", buf);
printf("Age : ");
fgets(buf, 19, stdin);
age = atoi(buf);
myfriend[i].age = age;
}
printf("=======================\n");
for (i = 0; i < 5; i++)
{
printf("%12s : %d\n", myfriend[i].name, myfriend[i].age);
}
}
fgets(3)Àº Űº¸µå·Î ºÎÅÍ ¹®ÀÚ¿À» ÀԷ¹ޱâ À§Çؼ »ç¿ëÇÏ´Â ÇÔ¼ö´Ù. 1Àº Űº¸µå·Î ÀÔ·ÂµÈ °³Ç๮ÀÚ¸¦ Á¦°ÅÇϱâ À§Çؼ »ç¿ëÇß´Ù.
atoi(3) ÇÔ¼ö´Â ¹®ÀÚ¿À» intÇü °ªÀ¸·Î º¯°æÇϱâ À§Çؼ »ç¿ëÇÑ´Ù. À§ÀÇ ¿¹Á¦´Â ³ªÀ̸¦ ¼ýÀÚ·Î ¹Þ¾Æ¼ ÇÏ´ÂÀÏÀÌ ¾øÀ¸´Ï, ±×³É ¹®ÀÚ¿ ±×´ë·Î ÀúÀåÇØµµ »ó°üÀº ¾øÀ» °ÍÀÌ´Ù. ±×·¯³ª ³ªÀ̸¦ °¡Áö°í ºñ±³ÇÑ´Ù´øÁö ÇÏ´Â ¼ýÀÚ¿¬»ê ÀÛ¾÷ÀÌ ÀÖÀ» ¼ö ÀÖÀ¸¹Ç·Î, ³ªÁßÀ» À§Çؼ int ÇüÀ¸·Î º¯È¯ÇÏ´Â°Ô ÁÁÀ» °ÍÀÌ´Ù.
´ÙÀ½Àº Å×½ºÆ® °á°ú´Ù. # ./userinfo
Name : yundream
Age : 32
Name : kopete
Age : 28
Name : dream
Age : 31
Name : minsu
Age : 29
Name : test
Age : 32
=======================
yundream : 32
kopete : 28
dream : 31
minsu : 29
test : 32
¹®Á¦
À§ÀÇ ¿¹Á¦¸¦ Æ÷ÀÎÅ͸¦ »ç¿ëÇϵµ·Ï ¼öÁ¤Çغ¸ÀÚ.
8 ¸®½ºÆ®
±¸Á¶Ã¼ ¿ª½Ã ÀÏ¹Ý ¿ø½Ãµ¥ÀÌÅÍŸÀÔ°ú ¸¶Âù°¡Áö·Î ¹è¿°ú Æ÷ÀÎÅ͸¦ ÀÌ¿ëÇØ¼ ±¸Á¶È ÇÒ ¼ö ÀÖÀ½À» ¹è¿ü´Ù. ¹è¿ ȤÀº Æ÷ÀÎÅÍÀÇ °æ¿ì ¸Þ¸ð¸® »ó¿¡ ´ÙÀ½°ú °°ÀÌ, ÀúÀåÀ» À§ÇÑ °ø°£ÀÌ ¸¸µé¾î Áú °ÍÀÌ´Ù. ![]()
±×·¯³ª ¸ðµç µ¥ÀÌÅÍ Å¸ÀÔÀ» ¿ø¼Ò·Î °¡Áú ¼ö ÀÖ´Ù´Â ±¸Á¶Ã¼ÀÇ Æ¯Â¡Àº ¹è¿º¸´Ù Á»´õ À¯¿¬ÇÑ ÀڷᱸÁ¶ÀÇ È°¿ëÀÌ °¡´ÉÇÏ°Ô ÇÑ´Ù. ¸µÅ©µå ¸®½ºÆ®¿Í °°Àº ÀڷᱸÁ¶ÀÇ È°¿ëÀÌ °¡´ÉÇØÁø´Ù´Â Á¡ÀÌ´Ù.
¹è¿ ȤÀº Æ÷ÀÎÅ͸¦ ÀÌ¿ëÇØ¼ ¸Þ¸ð¸®¸¦ ÇÒ´çÇÏ´Â ¹æ½ÄÀÇ ¹®Á¦Á¡¿¡ ´ëÇØ¼ »ý°¢Çغ¸µµ·Ï ÇÏÀÚ. ÀÌ ¹æ½ÄÀº ÀúÀåÇØ¾ß ÇÏ´Â ´ë»óÀÇ °¹¼ö¸¦ ¾Ë°í ÀÖÀ» ¶§, °£´ÜÇϸ鼵µ È¿°úÀûÀ¸·Î »ç¿ëÇÒ ¼ö ÀÖ´Ù. ±×·¯³ª ±× Å©±â¸¦ ¾Ë ¼ö ¾øÀ» ¶§¿¡´Â ¹®Á¦°¡ µÈ´Ù. Áï ´ÙÀ½°ú °°Àº °æ¿ì°¡ µÉ °ÍÀÌ´Ù.
±×·¸´Ù¸é ¸®½ºÆ® ÇüÅ·ΠÇÏ¸é ¾î¶»°Ô µÉ±î. ±×·¯´Ï±î »õ·Î¿î µ¥ÀÌÅͰ¡ µé¾î¿Ã¶§¸¶´Ù. µ¥ÀÌÅ͸¦ ÀúÀåÇϱâ À§ÇÑ °ø°£À» ÇÒ´çÇÏ´Â ¹æ½ÄÀÌ´Ù. ¸¸¾à »õ·Î¿î µ¥ÀÌÅͰ¡ Ãß°¡µÇ¾ú°í, À̸¦ À§Çؼ ¸Þ¸ð¸®°¡ ÇÒ´çµÇ¾ú´Ù¸é, Ãß°¡µÈ ´ÙÀ½ µ¥ÀÌÅÍÀÇ À§Ä¡¸¦ ¾Ë°í ÀÖ¾î¾ß ÇÒ°ÍÀÌ´Ù. ¿ì¸®´Â Æ÷ÀÎÅ͸¦ ÀÌ¿ëÇØ¼ µ¥ÀÌÅͰ¡ ÀúÀåµÈ À§Ä¡¸¦ ã¾Æ³¾ ¼ö ÀÖÀ½À» ¾Ë°í ÀÖ´Ù. ±×·¸´Ù¸é, °¢°¢ÀÇ µ¥ÀÌÅͰ¡ ´ÙÀ½ µ¥ÀÌÅÍÀÇ À§Ä¡¸¦ °¡¸®Å³ ¼ö ÀÖµµ·Ï ÇÏ¸é µÉ°ÍÀÌ´Ù. ¿¹ÄÁµ¥, ±¸Á¶Ã¼¿¡ ´ÙÀ½ ÀúÀåµÈ µ¥ÀÌÅÍÀÇ À§Ä¡¸¦ °¡¸®Å°´Â Æ÷ÀÎÅ͸¦ µÎ´Â °ÍÀÌ´Ù.
Áï ´ÙÀ½°ú °°ÀÌ ¸®½ºÆ®ÇüÅ·Π¸¸µå´Â °ÍÀÌ´Ù. ![]()
¸®½ºÆ®´Â ¹è¿¿¡ ºñÇØ¼ ´ÙÀ½°ú °°Àº ÀåÁ¡µéÀ» °¡Áø´Ù.
![]()
¹Ý¸é ¹è¿¿¡ ºñÇØ¼ »ç¿ëÇϱⰡ Á» ±î´Ù·Ó´Ù´Â ´ÜÁ¡À» °¡Áö´Âµ¥, ¸®½ºÆ®°¡ °¡Áö´Â ÀåÁ¡¿¡ ºñÇÒ¹Ù´Â ¾Æ´Ï´Ù. 9 ¸®½ºÆ® ÀÀ¿ë
±×·¯¸é À§¿¡¼ ´Ù·ç¾ú´ø »ç¿ëÀÚ Á¤º¸ °ü¸® ÇÁ·Î±×·¥À» list(¸®½ºÆ®)¹öÀüÀ¸·Î ¹Ù²ãº¸µµ·Ï ÇϰڴÙ. ±¸Á¶Ã¼´Â °ÅÀÇ ºñ½ÁÇÏÁö¸¸, ´ÙÀ½ Ãß°¡µÉ µ¥ÀÌÅÍÀÇ ÁÖ¼Ò¸¦ ÀúÀåÇØ¾ß ÇϹǷÎ, Æ÷ÀÎÅÍÇü º¯¼ö°¡ Ãß°¡µÇ¾î¾ß ÇÑ´Ù. struct userinfo
{
char name[20];
int age;
struct userinfo *NextItem;
};
´ÙÀ½Àº ¿Ï¼ºµÈ ÇÁ·Î±×·¥ÀÌ´Ù. ¾à°£ º¹ÀâÇÏ°Ô º¸ÀÏ ¼öµµ ÀÖÁö¸¸, ¸î¹ø ½ÇÇà½ÃŰ¸é¼ õõÈ÷ »ý°¢Çغ¸¸é ÀÌÇØ°¡ °¥°ÍÀÌ´Ù. #include <stdio.h>
#include <string.h>
struct userinfo
{
char name[20];
int age;
struct userinfo *NextItem;
};
int main(int argc, char **argv)
{
int age;
int i;
int ItemNum = 0;
char buf[40];
struct userinfo *myfriend;
struct userinfo *first = NULL; // óÀ½ Æ÷ÀÎÅ͸¦ ÀúÀåÇϱâ À§ÇÑ º¯¼ö
struct userinfo *prev = NULL; // ÀÌÀü Æ÷ÀÎÅ͸¦ ÀúÀåÇϱâ À§ÇÑ º¯¼ö
while(1)
{
printf("Name : ");
fgets(buf, 19, stdin);
buf[ strlen(buf)-1] = '\0';
// strcmp´Â ¹®ÀÚ¿À» ºñ±³ÇÑ´Ù.
// µÎ°³ÀÇ ¹®ÀÚ¿ÀÌ °°´Ù¸é 0À» ¸®ÅÏÇÑ´Ù.
// »ç¿ëÀÚ°¡ Name ¿¡ quit¸¦ ÀÔ·ÂÇÏ¸é ·çÇÁ¸¦ ºüÁ®³ª°£´Ù.
if (strcmp(buf,"quit") == 0)
break;
else
myfriend = (struct userinfo *)malloc(sizeof(struct userinfo)*1);
sprintf(myfriend->name, "%s", buf);
printf("Age : ");
fgets(buf, 19, stdin);
age = atoi(buf);
// ´ÙÀ½À» °¡¸®Å°´Â ¿ø¼Ò°¡ ¾øÀ¸¹Ç·Î
// NextItemÀº NULL À̵ȴÙ.
myfriend->age = age;
myfriend->NextItem = NULL;
// ¸¸¾à¿¡ ÀÌÀü ¿ø¼Ò°¡ ÀÖ´Ù¸é,
// ÀÌÀü ¿ø¼Ò¿¡°Ô ÇöÀç ¿ø¼ÒÀÇ Æ÷ÀÎÅ͸¦ ¾Ë·ÁÁØ´Ù.
if (prev != NULL)
prev->NextItem = myfriend;
// first °¡ NULL À̶ó¸é
// ÃÖÃÊÀԷµǴ ¿ø¼ÒÀÓÀ» ¾Ë ¼ö ÀÖ´Ù.
// ÀÌ ¿ø¼ÒÀÇ Æ÷ÀÎÅ͸¦ ÀúÀåÇÑ´Ù.
if (first == NULL)
first = myfriend;
// ÇöÀç ¿ø¼ÒÀÇ Æ÷ÀÎÅͰªÀ» ÀúÀåÇÑ´Ù.
prev = myfriend;
ItemNum++;
}
printf("Item : %d\n", ItemNum);
// first¿¡´Â ÃÖÃÊÀÔ·ÂµÈ ¿ø¼ÒÀÇ Æ÷ÀÎÅͰ¡ µé¾îÀÖ´Ù.
myfriend = first;
// NextItemÀÌ NULLÀÌ ¾Æ´Ò¶§±îÁö ·çÇÁ¸¦ µ¹¸é¼
// ¿ø¼Ò¸¦ Ãâ·ÂÇÑ´Ù.
while(myfriend != NULL)
{
printf("%12s : %d\n",myfriend->name, myfriend->age);
myfriend = myfriend->NextItem;
}
}
10 union
°ø¿ëü¶ó°í ºÎ¸£±âµµ ÇÏ´Â unionÀº ¼±¾ðÇÏ´Â ¹æ¹ý »ç¿ëÇÏ´Â ¹æ¹ýÀÌ ±¸Á¶Ã¼¿Í µ¿ÀÏÇÏ´Ù. ÇØ¼ ¶§¶§·Î Çê°¥¸®±âµµ Çϴµ¥, ÀÌ·± ÀÌÀ¯·Î union ÀÚü¸¦ ¾Æ¿¹ »ç¿ëÇÏÁö ¾Ê´Â °æ¿ìµµ ÀÖ´Ù. »ç½Ç unionÀ» »ç¿ëÇÏÁö ¾Ê´õ¶óµµ, ÇÁ·Î±×·¥À» ÀÛ¼ºÇϴµ¥ Å« ¹®Á¦´Â ¾ø´Ù. ÇÏÁö¸¸ ÀÌ·±·ùÀÇ ¹®Á¦°¡ ±×·¸µíÀÌ »ç¿ëÇÏÁö ¾Ê¾Æµµ ¹®Á¦´Â ¾øÁö¸¸ »ç¿ëÇÏ¸é º¹ÀâÇÑ ¹®Á¦¸¦ Á»´õ ½±°Ô Ç® ¼ö ÀÖ´Ù. ±×·¯´Ï ÀÏ´ÜÀº ¾Ë¾ÆµÎ°í ³Ñ¾î°¥ ÇÊ¿ä´Â ÀÖÀ»°Å °°´Ù.
±×·¸´Ù°í ÇØ¼, À̵ÑÀÇ Â÷À̰¡ À̸§¿¡¸¸ ÀÖ´Â °ÍÀº ¾Æ´Ï´Ù. °ø¿ëü¿¡ ¼ÓÇÑ ¸â¹öº¯¼öµéÀº µ¿ÀÏÇÑ ¸Þ¸ð¸® °ø°£À» »ç¿ëÇÑ´Ù´Â Á¡¿¡ ÀÖ¾î¼ ±¸Á¶Ã¼¿Í ºÐ¸íÇÑ Â÷À̸¦ º¸ÀδÙ. ´ÙÀ½ÀÇ ¿¹¸¦ º¸ÀÚ.
¸ÕÀú ±¸Á¶Ã¼ struct data{
int a;
char b[4];
};
ÀÌ°Ç À¯´Ï¿Âunion data{
int a;
char b[4];
}
À̵éÀº struct ¿Í union À̶ó´Â °Í¸¸ Á¦¿ÜÇϰí´Â ¸â¹öº¯¼öÀÇ Å©±â±îÁö ¿ÏÀüÈ÷ µ¿ÀÏÇØ º¸ÀÌÁö¸¸, ¸Þ¸ð¸® ÀÔÀå¿¡¼ º¸¸é ´ÙÀ½°ú °°ÀÌ ºÐ¸íÇÑ Â÷À̸¦ º¸ÀδÙ. ![]()
ÀÌÁ¦ sizeof ¸¦ ÀÌ¿ëÇØ¼, ¾î´ÀÁ¤µµÀÇ ¸Þ¸ð¸®°¡ ÇÒ´çµÇ¾ú´ÂÁö¸¦ È®ÀÎÇØ º¸ÀÚ. #include <stdio.h>
struct stdata
{
int a;
char b[4];
};
union undata
{
int a;
char b[4];
};
int main()
{
printf("st size : %d\n", sizeof(struct stdata));
printf("un size : %d\n", sizeof(union undata));
}
½ÇÇà½ÃÄѺ¸¸é, struct stdata ´Â 4+4=8byte ÀÇ Å©±â¸¦ Â÷ÁöÇÏÁö¸¸ union undata ´Â 4byteÀÇ Å©±â¸¸À» Â÷ÁöÇϰí ÀÖÀ½À» ¾Ë¼ö ÀÖ´Ù. ¿¹ÄÁµ¥, unionÀº °¢°¢ÀÇ ¸â¹ö¸¦ À§ÇÑ °ø°£À» ÇÒ´ç¹æ½ÄÀÌ ¾Æ´Ñ, °øÅëÀ¸·Î »ç¿ëÇÒ ¸Þ¸ð¸® °ø°£À» ÇÒ´çÇϰí, ÇÏ´ç ¸Þ¸ð¸® °ø°£¿¡ ´ëÇÑ ´Ù¸¥ ŸÀÔÀÇ ³×ÀÌ¹Ö ±ÔÄ¢¸¸ Á¤ÇÏ´Â ¹æ½ÄÀÓÀ» ¾Ë ¼ö ÀÖ´Ù. 4byte¶ó´Â °ø°£À» ÇÒ´çÇØµÎ°í, Çʿ信 µû¶ó¼ int ÇüÀ¸·Î Àб⵵ Çϰí char ÇüÀ¸·Î Àб⵵ ÇÑ´Ù´Â ¾ê±â´Ù.
±»ÀÌ ÀÌ·¸°Ô±îÁö ÇØ¼ ¾òÀ» ¼ö ÀÖ´Â ÀÕÁ¡ÀÌ ¾î¶²°ÍÀÌ ÀÖÀ»Áö ¾Ë¾Æº¸µµ·Ï ÇÏÀÚ.
Çüº¯È¯ ÀÛ¾÷À» ¾ø¾ÖÁØ´Ù. µ¿ÀÏÇÑ µ¥ÀÌÅ͸¦ ´Ù¾çÇÑ Å¸ÀÔÀ¸·Î º¼¼ö ÀÖÀ½À¸·Î, Çüº¯È¯°ú °°Àº ±ÍÂúÀº °úÁ¤À» »ý·«ÇÒ ¼ö ÀÖ´Ù. ¿¹¸¦ µé¾î, int Çü°ªÀ» char ÇüÀ¸·Î 4°³¾¿ Àß¶ó¼, ´Ù½Ã Àд °æ¿ì¸¦ »ý°¢Çغ¸ÀÚ. ÀÌ·± °æ¿ì´Â ÃæºÐÈ÷ ¹ß»ýÇÒ ¼ö ÀÖ´Ù. ÀÎÅͳÝÁÖ¼Ò´Â 32bit intÇüÀ¸·Î Ç¥ÇöµÉ¼ö ÀÖ´Ù. ±×·¸Áö¸¸ À̰ÍÀº »ç¶÷ÀÌ Àб⿡ ¸Å¿ì ¾î·Æ±â ¶§¹®¿¡, 1byte¾¿ 4ÀÚ¸®·Î ²÷¾î¼ Ç¥ÇöÇÏ´Â ¹æ½ÄÀ» »ç¿ëÇÑ´Ù. ¸¸¾à intÇü ÀÎÅÍ³Ý ÁÖ¼Ò¸¦ .À¸·Î ±¸ºÐµÈ ÀÎÅÍ³Ý ÁÖ¼Ò·Î º¯È¯ÇÏ´Â ÇÁ·Î±×·¥À» ¸¸µé·Á°í ÇÑ´Ù¸é, 1byte¾¿ Àоîµé¿©¼ Ç¥ÇöÇÏ´Â ÇÔ¼ö¸¦ ÀÛ¼ºÇØ¾ß ÇÒ °ÍÀÌ´Ù.
ÀÌ·¯ÇÑ ÇÔ¼ö¸¦ ÀÛ¼ºÇÏ´Â°Ç ¸Å¿ì ¾î·Á¿î ÀÛ¾÷ÀÌ´Ù. ±×·¸Áö¸¸ unionÀ» ÀÌ¿ëÇÑ´Ù¸é, °£´ÜÇÏ°Ô ÇØ°áÇÒ ¼ö ÀÖ´Ù. #include <stdio.h>
union undata
{
int a;
char b[4];
};
int main()
{
int ipaddr = 91827319;
union undata ipdata;
ipdata.a = ipaddr;
printf("%d.%d.%d.%d\n",ipdata.b[0], ipdata.b[1],
ipdata.b[2], ipdata.b[3]);
}
¾ÆÁÖ °£´ÜÇϰÔ, ÀÎÅÍ³Ý ÁÖ¼Ò º¯È¯ ÇÁ·Î±×·¥ÀÌ ¸¸µé¾îÁ³À½À» ¾Ë ¼ö ÀÖ´Ù.
´«Ä¡°¡ Á» ºü¸£´Ù¸é union À̶ó´Â °ÍÀº ¸Þ¸ð¸®¿µ¿ªÀ» Çϳª µÎ°í, ÀÌ ¸Þ¸ð¸®¿µ¿ªÀ» °¡¸®Å°´Â ¼·Î´Ù¸¥ ŸÀÔÀÇ Æ÷ÀÎÅÍ º¯¼ö¸¦ ¼±¾ðÇѰͰú ºñ½ÁÇÏ´Ù´Â °ÍÀ» ¾Ë ¼ö ÀÖÀ» °ÍÀÌ´Ù. À§ÀÇ ÇÁ·Î±×·¥Àº ´ÙÀ½°ú °°ÀÌ º¯°æÇÒ ¼ö ÀÖ´Ù. #include <stdio.h> int main() { int ipaddr = 91827319; char *b; b = (char *)&ipaddr; printf("%d.%d.%d.%d\n", b[0], b[1], b[2], b[3]); }
¸¸¾à ¾î¶² µ¿ÀÏÇÑ µ¥ÀÌÅ͸¦ Çʿ信 µû¶ó¼, int, char, short int ÇüÀ¸·Î ´Ù¾çÇÏ°Ô Ç¥ÇöÇØ¾ßÇÒ Çʿ䰡 ÀÖ´Ù¸é, º¹ÀâÇÏ°Ô Æ÷ÀÎÅ͸¦ ¸¸µé¾î¼ Çüº¯È¯Çϰųª ÇÒ ÇÊ¿ä ¾øÀÌ, ´ÙÀ½°ú °°Àº union ÀڷḦ ¼±¾ðÇØ¼ »ç¿ëÇÏ¸é µÈ´Ù.
union mydata
{
int a;
short b[2];
char c[4];
}
union Àº ÇϳªÀÇ ¸Þ¸ð¸®¿µ¿ª¸¸À» »ç¿ëÇÏ´Â ¹æ½ÄÀ̹ǷÎ, °¢ ¸â¹öµéÀÌ °¡Áö´Â Å©±â°¡ µ¿ÀÏÇϵµ·Ï ¸ÂÃß¾îÁÙ Çʿ䰡 ÀÖ´Ù. ±âÁØÀº ¸â¹öº¯¼öÁß¿¡¼ °¡Àå Å« µ¥ÀÌÅÍ Å¸ÀÔÀÌ µÈ´Ù. À§ÀÇ °æ¿ì int ÇüÀÌ °¡Àå Å©±â ¶§¹®¿¡, ´Ù¸¥ µ¥ÀÌÅÍŸÀÔÀÇ °æ¿ì ¹è¿À» ÀÌ¿ëÇØ¼ 4byte°¡ µÇµµ·Ï ÀûÀýÈ÷ ¼±¾ðÀ» ÇØÁÖ¾î¾ß ÇÑ´Ù. char c[2] ¿Í °°ÀÌ ¼±¾ðÇÑ´Ù°í ÇØ¼, ÇÁ·Î±×·¥ÀÌ ÀÛµ¿ÇÏÁö ¾Ê°Å³ª ÇÏ´Â ÀÏÀº ¾ø°ÚÁö¸¸ µÚÀÇ 2¹ÙÀÌÆ®´Â »ç¿ëÇÏÁö ¸øÇÏ°Ô µÉ °ÍÀÌ´Ù. 11 ´ñ±Û
Ʋ¸°ºÎºÐ ¼öÁ¤/Ãß°¡ÇؾßÇÒ ºÎºÐÀÌ ÀÖÀ¸¸é ÄÚ¸àÆ® ´Þ¾ÆÁÖ¼¼¿ä.
|
|
|
|
EmailÀ» ±âÀÔÇϸé, ´ñ±ÛÀÌ ¸ÞÀÏ·Î Àü´ÞµË´Ï´Ù. |
|