include "./title.php"; ?>
1. C¾ð¾îÀÇ °³¹ß
C¾ð¾î´Â Dennis Ritchie¿Í Ken ThompsonÀÌ Bell¿¬±¸¼Ò¿¡¼ Unix¸¦ °³¹ßÇÏ´øÁß 1972³â Dennis Ritchie¿¡ ÀÇÇØ °³¹ß µÇ¾ú´Ù.
㟍 C¾ð¾îÀÇ ¹ßÀü °úÁ¤
ALGOL 60
⇩ 1960³â ±¹Á¦ À§¿øȸ ¼³°è
CPL (Combined Programming Language)
⇩ 1963³â ÄÉÀӺ긮Áö ´ëÇÐ ¹× ·±´ø´ëÇÐ
BCPL (Basic Combined Programming Language)
⇩ 1967³â ÄÉÀӺ긮Áö ´ëÇÐ(Martin Richards)
B¾ð¾î
⇩ 1970³â Bell ¿¬±¸¼Ò (Ken Thompson)
C¾ð¾î
1972³â Bell ¿¬±¸¼Ò (Dennis Ritchie)
2. C¾ð¾îÀÇ Æ¯Â¡
±Þ¼Óµµ·Î º¸±ÞµÇ¾î ³Î¸® »ç¿ëµÇ°í ÀÖ´Â °¡Àå ÀαâÀÖ°í Áß¿ä½Ã µÇ°í ÀÖ´Â ÇÁ·Î±×·¡¹Ö ¾ð¾î·Î¼ ´ÙÀ½°ú °°Àº Ư¡À» °¡Áö°í ÀÖ´Ù.
1)Àü»ê ÀÌ·Ð ¹× ½Ç¹« Àû¿ë»ó¿¡ Àý´ëÀûÀ¸·Î ÇÊ¿äÇÑ Á¦¾î ±¸Á¶, ÀÚ·á ±¸Á¶ ¹× ¿¬»êÀÚ¸¦ Ãæ ºÐÈ÷ °®Ãß°í ÀÖ´Â Çö´ë½Ä ¾ð¾îÀÌ´Ù.
2)ÇÏÇâ½Ä ¼³°è(top-down design), ±¸Á¶Àû ÇÁ·Î±×·¡¹Ö(structured programming)
±×¸®°í ¸ðµâ½Ä ¼³°è(modular design)°¡ ¿ëÀÌÇÏ¿© ½Å·Ú¼º ÀÖ°í ÀÌÇØÇϱ⠽¬¿î ÇÁ·Î ±×·¥À» ¸¸µé ¼ö ÀÖ´Ù.
3)ÄÄÇ»ÅÍÀÇ ±â´ÉÀ» ÃÖ´ëÇѵµ·Î ÀÌ¿ëÇÒ ¼ö ÀÖ´Â È¿À²ÀûÀÎ ¾ð¾îÀ̱⠶§¹®¿¡ ÇÁ·Î±×·¥À» °£ °áÇÏ°Ô ÀÛ¼ºÇÏ¿© ½Å¼ÓÇÏ°Ô ¼öÇà ÇÒ ¼ö ÀÖ´Ù.
4)½Ã½ºÅÛ °£¿¡ ȣȯ¼ºÀÌ ¸Å¿ì ³ô´Ù. Áï ¾î¶² ½Ã½ºÅÛ¿¡¼ »ç¿ëµÇ´ø CÇÁ·Î±×·¥À» ¼öÁ¤¾ø ÀÌ ¶Ç´Â ¾à°£ÀÇ ¼öÁ¤À¸·Î ´Ù¸¥ ½Ã½ºÅÛ¿¡¼µµ ½ÇÇà½Ãų ¼ö ÀÖ´Ù.
5)°í±Þ ÇÁ·Î±×·¡¹Ö ¾ð¾î¿Í ¾î¼Àºí¸®ÀÇ ÀåÁ¡À» ÃëÇÑ Áß°£ ¼öÁØÀÇ ½Ã½ºÅÛ ÇÁ·Î±×·¡¹Ö ¾ð¾î ÀÌ´Ù. (UNIX, MS-DOS, DBASE¥²+µîÀ» ÀÛ¼º)
3. ¹ø¿ª±â(Compiler)ÀÇ Á¾·ù
½±°Ô Á¢ÇÒ ¼ö ÀÖ´Â C¾ð¾îÀÇ Á¾·ù´Â ´ÙÀ½°ú °°Àº °ÍµéÀÌ ÀÖ´Ù.
1)Compiler type : Lattice C, Turbo C, Microsoft C, XENIX C, UNIX C
2)Interpreter type : RUN/C Professional
4. C¾ð¾îÀÇ ¹Ì·¡
C¾ð¾î´Â °£°áÇϸ鼵µ È¿À²ÀûÀÌ°í °·ÂÇÑ ¾ð¾îÀ̱⠶§¹®¿¡ ÆÛ½º³Î ÄÄÇ»ÅÍ¿¡¼ºÎÅÍ ½´ÆÛ ÄÄÇ»ÅÍ¿¡ À̸£´Â °¢Á¾ ½Ã½ºÅÛ¿¡¼ ³Î¸® »ç¿ëµÇ°í ÀÖ´Ù.
1980³â´ë ÀÌÈÄ ¼ÒÇÁÆ®¿þ¾î ÇϿ콺, Àü»ê Àü°øÀÚ ¹× ÀÏ¹Ý ¾ÖÈ£°¡µé¿¡°Ô ±Þ°ÝÈ÷ º¸±ÞµÇ°í ÀÖÀ¸¸ç ¾ÕÀ¸·Î ±× ´ë»ó°ú È°¿ë¹üÀ§´Â ´õ¿í ºü¸¥ Ãß¼¼·Î È®»êµÉ Àü¸ÁÀÌ´Ù.
5. C¾ð¾îÀÇ »ç¿ë
C¾ð¾î´Â ÄÄÆÄÀÏ·¯Çü ¾ð¾îÀ̱⠶§¹®¿¡ C¾ð¾î ÇÁ·Î±×·¥À» ÀÛ¼ºÇÏ¿© ½ÇÇà½ÃÅ°·Á¸é ´ÙÀ½°ú °°Àº ÀýÂ÷°¡ ÇÊ¿äÇÏ´Ù.
1)¿¡µðÅÍ(editor)¸¦ »ç¿ëÇÏ¿© CÇÁ·Î±×·¥(¿ø½Ã ÄÚµå)À» ÀÛ¼ºÇÑ´Ù.
2)¿¡µðÅÍ·Î ÀÛ¼ºÇÑ CÇÁ·Î±×·¥À» ÄÄÆÄÀÏ(compile)ÇÏ¿© ¸ñÀûÄÚµå(object code)¸¦ ¸¸µç´Ù.
Áï, C¾ð¾î·Î ÀÛ¼ºÇÑ ÇÁ·Î±×·¥À» ÄÄÇ»ÅÍ°¡ Á÷Á¢ ÀÌÇØÇÏ¿© ½ÇÇàÇÒ ¼ö ÀÖ´Â ±â°è¾î ÇÁ·Î±× ·¥À¸·Î ¹ø¿ª(compile)ÇÑ´Ù.
3)C¶óÀ̺귯¸®¿¡¼ ÀÛ¼ºÇÑ ¶óÀ̺귯¸® ¸ñÀûÄÚµå¿Í ÃÖÁ¾ÀûÀ¸·Î ¸µÅ©(link)ÇÏ¿© ½ÇÇà ÈÀÏ (.exe ÈÀÏ)À» ¸¸µç´Ù.
4)½ÇÇàÀÌ °¡´ÉÇÑ ½ÇÇà ÈÀÏÀ» ·Îµå½ÃÄÑ ½ÇÇàÇÑ´Ù. Áï, ½ÇÇàÈÀÏÀÇ À̸§À» ÀÔ·ÂÇÏ¿© ½ÇÇà ½ÃŲ´Ù.
6. CÇÁ·Î±×·¥ÀÇ ¿¹
main() { printf("ÀÌÁ¦ºÎÅÍ C ÇÁ·Î±×·¡¹ÖÀ» ½ÃÀÛÇսôÙ!"); } |
¢Ñ C¾ð¾î¿¡¼ ´ë¹®ÀÚ(upper-case)¿Í ¼Ò¹®ÀÚ(lower-case)°¡ ±¸º°µÇ¾î »ç¿ëµÇ¸ç, CÇÁ·Î±×·¥Àº ¼Ò¹®ÀÚ·Î ÀÛ¼ºÇÏ´Â °ÍÀ» ¿øÄ¢À¸·Î ÇÑ´Ù´Â Á¡À» ÁÖÀÇÇÏ¿©¾ß ÇÑ´Ù. ±×¸®°í ÇÁ·Î±×·¥ ÄÚµù½Ã FORTRANÀ̳ª COBOLµîÀÇ ¾ð¾î¿¡¼ ó·³ ÄÚµùÇÏ´Â ¿ÀÌ Á¤ÇØÁ® ÀÖ´Â °ÍÀÌ ¾Æ´Ï¶ó ÇÑ ÇàÀÇ ¾î´À ¿¿¡¼ ÄÚµùÀ» ½ÃÀÛÇصµ »ó°üÀÌ ¾ø´Ù. ÀÌ°ÍÀº ÇÁ·Î±×·¥À» ¸Å¿ì Àб⠽±°Ô ÀÛ¼ºÇÒ ¼ö ÀÖµµ·Ï ÇÏ´Â ÁÁÀº ¼ö´ÜÀÌ µÈ´Ù.
¥±. C¾ð¾îÀÇ ÀÌÇظ¦ À§ÇÑ ±âÃÊ Áö½Ä
1. ¿¹Á¦ ÇÁ·Î±×·¥°ú ½ÇÇà °á°ú
¡Ý ¿¹Á¦ ÇÁ·Î±×·¥(c2-01.c)
main( ) { printf("ÀÌÁ¦ºÎÅÍ C ÇÁ·Î±×·¡¹ÖÀ» ½ÃÀÛÇսôÙ!"); } |
¡Ý½ÇÇà °á°ú
c>c2-01
ÀÌÁ¦ºÎÅÍ C ÇÁ·Î±×·¡¹ÖÀ» ½ÃÀÛÇսôÙ!
2. main( )ÇÔ¼ö
CÇÁ·Î±×·¥Àº Çϳª ÀÌ»óÀÇ ÇÔ¼öµé·Î ±¸¼ºµÇ¸ç, ¹Ýµå½Ã main( ) ÇÔ¼ö·Î ½ÃÀ۵ȴÙ. ÀÌ¿¡ ´ëÇؼ´Â Á¦¥µÀåÀÇ ÇÔ¼ö¿¡¼ ÀÚ¼¼È÷ ¼³¸íÇϱâ·Î ÇÑ´Ù.
À§ ÇÁ·Î±×·¥¿¡¼ "{"´Â main( )ÇÔ¼öÀÇ ½ÃÀÛÀ» ³ªÅ¸³»°í "}"´Â main( )ÇÔ¼öÀÇ ³¡À» ³ªÅ¸³½´Ù. Áï main( )¿¡¼ ( )´Â ÇÔ¼ö¸¦ ³ªÅ¸³»¸ç "{"¿Í "}"»çÀÌÀÇ ³»¿ëÀ¸·Î ±¸¼ºµÈ´Ù.
3. ÁÖ¼®¹®(comment)
ÁÖ¼®¹®À̶õ ÇÁ·Î±×·¥ÀÌ ¾î¶°ÇÑ ¸ñÀûÀ¸·Î ´©±¸¿¡ ÀÇÇؼ ÀÛ¼ºµÇ¾ú´Â°¡ ¶Ç´Â °¢ ·çƾÀ̳ª ¹®ÀåÀÇ ³í¸®¿¡ ´ëÇÑ ¼³¸íÀ» ±â¼úÇÏ´Â °ÍÀ¸·Î ÇÁ·Î±×·¥À» ¹®¼È ÇÒ ¸ñÀûÀ¸·Î ¸¹ÀÌ »ç¿ëµÈ´Ù. ÁÖ¼®¹®Àº /*·Î ½ÃÀÛÇؼ */·Î ³¡³ª´Â ¹®ÀÚµéÀÇ Áý´ÜÀ» ÀǹÌÇÏ¸ç ±× »çÀÌ¿¡´Â ¾î¶°ÇÑ ¹®ÀÚ¶óµµ »ç¿ëÀÌ °¡´ÉÇÏ°í ÇÁ·Î±×·¥ Áß ¿©¹é ¹®ÀÚ°¡ µé¾î°¥ ¼ö ÀÖ´Â °÷ÀÌ¸é ¾îµðµçÁö ±â¼úÇ× ¼ö°¡ ÀÖ´Ù.
/*¿Í */·Î µÑ·¯½ÎÀÎ ÁÖ¼®¹®Àº ÄÄÆÄÀϽÿ¡ ÇϳªÀÇ ¿©¹é¹®ÀÚ·Î Ãë±ÞµÇ±â ¶§¹®¿¡ ÁÖ¼®¹®À» ¸¹ÀÌ »ç¿ëÇÏ¿©µµ ó¸® ¼Óµµ¿¡´Â Â÷ÀÌ°¡ ¾ø´Ù.
¡ºº¸±â¡»ÁÖ¼®¹®ÀÇ ¿¹
/*-------------------------
* test program
*------------------------
*/
4. ¹®Àå(statement)
¹®ÀåÀ̶õ ÇÁ·Î±×·¥À» ±¸¼ºÇÏ´Â ±âº»ÀûÀÎ ¿ä¼Ò·Î¼ ¹®ÀåÀÇ ³¡À» ³ªÅ¸³»´Â ¼¼¹ÌÄÝ·Ð(;)À» ¹Ýµå½Ã Æ÷ÇÔÇÏ°í ÀÖ´Ù. Áï ÇÁ·Î±×·¥À̶õ ¾î¶°ÇÑ ±â´ÉµéÀ» ¼öÇàÇÏ´Â ¹®Àåµé·Î ±¸¼ºµÈ´Ù°í ¸»ÇÒ ¼ö ÀÖ´Ù.
¡ºº¸±â¡»¹®ÀåÀÇ ¿¹
int counter, sum;
counter = 0 ;
sum = sum + counter ;
printf ("C ÇÁ·Î±×·¡¹Ö");
¹®ÀåÀÇ Á¾·ù¿¡ ´ëÇؼ´Â Á¦¥²Àå¿¡¼´Â º¸´Ù ±¸Ã¼ÀûÀ¸·Î ¼³¸íÇϱâ·Î ÇÑ´Ù.
5. printf( )ÇÔ¼ö
printf( )´Â ÇϳªÀÇ Ç¥ÁØ ¶óÀ̺귯¸® ÇÔ¼ö·Î¼ µ¥ÀÌÅ͸¦ Ç¥ÁØ Ãâ·Â ÀåÄ¡ÀÎ ¸ð´ÏÅÍ·Î Ãâ·ÂÇÒ ¶§ »ç¿ëÇÑ´Ù.
printf( )ÇÔ¼ö¿¡ ÀÇÇÏ¿© ¹®ÀÚ¿À̳ª ¼ýÀÚ¸¦ Ãâ·ÂÇÒ ¶§¿¡´Â printf´ÙÀ½ÀÇ °ýÈ£ ¼Ó¿¡ Ãâ·ÂÇÒ Çü½Ä°ú Ãâ·ÂÇÒ ³»¿ëÀ» ÀοëºÎÈ£(" ")·Î °¨½Î¼ Ç¥½ÃÇÑ´Ù.
1) ¹®ÀÚ¿ÀÇ Ãâ·Â
¹®ÀÚ¿À» Ãâ·ÂÇÏ·Á¸é printf´ÙÀ½ÀÇ °ýÈ£ ¼Ó¿¡ Ãâ·ÂÇÒ ¹®ÀÚ¿À» ÀÎ¿ë ºÎÈ£ ³»¿¡ ±â¼ú ÇÏ¸é µÈ´Ù.
¡º½Ç½À 2-02 ¡»¿¹Á¦ ÇÁ·Î±×·¥
/*------------------------------------------------------------------------------------------------
* c2-02.c :¹®ÀÚ¿ÀÇ Ãâ·Â
*----------------------------------------------------------------------------------------------*/
main( )
{
printf("¹«±ÃÈ "); /* "¹«±ÃÈ "¸¦ Ãâ·Â */
printf("¹«±ÃÈ \n"); /* "¹«±ÃÈ "¸¦ Ãâ·ÂÇÑ ÈÄ ÁÙÀ» ¹Ù²Þ */
printf("¿ì¸® ³ª¶ó ²É\n"); /* "¿ì¸® ³ª¶ó ²É"À» Ãâ·ÂÈÄ ÁÖ¹Ù²Þ */
printf("\n"); /* ÁÙÀ» ¹Ù²Þ */
printf("»ïõ¸® °»ê¿¡\n"); /*"»ïõ¸® °»ê¿¡" Ãâ·ÂÈÄ ÁÙ ¹Ù²Þ */
printf("¿ì¸® ³ª¶ó ²É"); /* "¿ì¸® ³ª¶ó ²É"À» Ãâ·Â */
}
¢Ñ½ÇÇà °á°ú
c>c2-02
¹«±ÃÈ ¹«±ÃÈ
¿ì¸® ³ª¶ó ²É
»ïõ¸® °»ê¿¡
¿ì¸® ³ª¶ó ²É
¡¼Âü°í¡½¾Æ·¡ÀÇ µÎ ¹®ÀåÀº ´ÙÀ½°ú °°ÀÌ ÇÑ ¹®ÀåÀ¸·Î Ç¥½ÃÇÒ ¼ö ÀÖ´Ù.
printf("¿ì¸® ³ª¶ó ²É\n");
printf("\n"); ⇨printf("¿ì¸®³ª¶ó ²É \n\n");
g line feed(ÁٹٲÞ)
printf("¿ì¸® ³ª¶ó ²É\n\n");
) H line feed(ÁٹٲÞ)
Ãâ鵨ÇÒ ¹®ÀÚ¿
㽬 '\n'Àº ´ÙÀ½ ÁÙÀÇ Ã³À½ºÎÅÍ Ãâ·ÂÀ» ½ÃÀÛÇ϶ó´Â Àǹ̸¦ °®´Â ÇϳªÀÇ ¹®Àڷμ °³Çà(new line ¶Ç´Â line feed)¹®ÀÚ¶ó°í ÇÑ´Ù. (°³Çà ¹®ÀÚ¿¡ ´ëÇؼ´Â ¥´ÀåÀÇ '¹®ÀÚ µ¥ÀÌÅÍÀÇ Ã³¸®'¿¡¼ »ó¼¼È÷ ¼³¸íÇϱâ·Î ÇÑ´Ù.)
¡¶¿¬½À 1¡·¾Æ·¡ÀÇ ±×¸²À» Ãâ·ÂÇÏ´Â ÇÁ·Î±×·¥À» ÀÛ¼ºÇÏ¿©¶ó.
¢Ñ½ÇÇà °á°ú
*
***
*****
*******
*********
1)printf( ) ÇÔ¼ö¸¦ 5°³ »ç¿ëÇÏ¿© ÀÛ¼ºÇÏ¿©¶ó.
2)printf( ) ÇÔ¼ö¸¦ 1°³ »ç¿ëÇÏ¿©¶ó.
¡¶¿¬½À 2¡·¾Æ·¡ÀÇ µÎ ´Ü¾î¸¦ ½ÇÇà °á°ú¿Í °°ÀÌ Ãâ·ÂÇÏ´Â ÇÁ·Î±×·¥À» ÀÛ¼ºÇÏ¿©¶ó.
Programming , Language
¢Ñ½ÇÇà °á°ú
Programming
Language
2) ¼öÄ¡ µ¥ÀÌÅÍÀÇ Ãâ·Â
¼öÄ¡ µ¥ÀÌÅ͸¦ Ãâ·ÂÇÒ ¶§¿¡´Â ¾Æ·¡ÀÇ ¿¹Á¦¿¡¼¿Í °°ÀÌ Ãâ·ÂÇÒ ¼ýÀÚÀÇ Ãâ·Â Çü½Ä°ú Ãâ·ÂÇÒ ¼öÄ¡¸¦ printf´ÙÀ½ÀÇ °ýÈ£ ¼Ó¿¡ ±â¼úÇÑ´Ù.
¡º½Ç½À 2-03¡»¿¹Á¦ ÇÁ·Î±×·¥
/*-----------------------------------------------------------------------------------------------------
* c2-03.c : ¼öÄ¡ µ¥ÀÌÅÍÀÇ Ãâ·Â
*----------------------------------------------------------------------------------------------------- */
main( )
{
printf("%d",1); /* 1À» Ãâ·Â */
printf("%d",2); /* 2¸¦ Ãâ·Â */
printf("%d\n",3); /* 3À» Ãâ·ÂÇÏ°í ÁÙÀ» ¹Ù²Þ */
printf("%d\n",123); /* 123À» Ãâ·ÂÇÏ°í ÁÙÀ» ¹Ù²Þ */
printf("%d\n",-345); /* -345¸¦ Ãâ·ÂÇÏ°í ÁÙÀ» ¹Ù²Þ */
printf(" %d",123); /* 3°³ÀÇ °ø¹éµÚ¿¡ 123À» Ãâ·Â */
printf(" %d\n",-345); /* 3°³ÀÇ °ø¹éµÚ¿¡ -345Ãâ·ÂÈÄ ÁÙ¹Ù²Þ */
printf("3 + 5 = %d\n", 3+5); /* "3 + 5 = 8"À» Ãâ·ÂÈÄ ÁÙ¹Ù²Þ */
printf("%d + %d = %d\n",3,5,3+5); /* "3 + 5 = 8"À» Ãâ·ÂÈÄ ÁÙ¹Ù²Þ */
}
¢Ñ½ÇÇà °á°ú
c>c2-03
123
123
-345
123 -345
3 + 5 = 8
3 + 5 = 8
¢ÁÇؼ³
À§ ¿¹Á¦¿¡¼ »ç¿ëµÈ Ãâ·Â Çü½Ä '%d'´Â Á¤¼öÇü µ¥ÀÌÅ͸¦ 10Áø¼ö Çü½ÄÀ¸·Î Ãâ·ÂÇÒ ¶§ »ç¿ëÇÏ´Â Çü½Ä ÁöÁ¤ ¹®ÀÚ¿·Î¼ ±× Àǹ̴ ´ÙÀ½°ú °°´Ù.
g Ãâ·ÂÇÒ µ¥ÀÌÅÍ
printf("%d \n", 3);
) H line feed(ÁٹٲÞ)
Çü½Ä ÁöÁ¤ ¹®ÀÚ¿
(%d´Â Á¤¼öÇü µ¥ÀÌÅ͸¦ 10Áø¼ö·Î Ãâ·ÂÇÒ ¶§ »ç¿ëÇÑ´Ù.)
printf("%d + %d = %d\n",3,5,3+5);
| ) H 3+5ÀÇ ¿¬»ê °á°ú°ªÀ» Ãâ·ÂÇÒ À§Ä¡
| 5ÀÇ Ãâ·Â À§Ä¡
+-¡æ 3ÀÇ Ãâ·Â À§Ä¡
6. »ó¼ö¿Í º¯¼ö
1) »ó¼ö(constant)
»ó¼ö¶õ ¿¬»ê¿¡ ÀÌ¿ëµÇ´Â ÀÚ·á·Î¼ ±× °ªÀÌ ÇÑ ¹ø Á¤ÀǵǸé ÇÁ·Î±×·¥ÀÌ ½ÇÇàµÇ´Â µµ Áß¿¡ ±× °ªÀÌ º¯È µÇÁö ¾Ê°í ÀÏÁ¤ÇÑ °ªÀ» À¯ÁöÇÏ´Â ÀڷḦ ¸»ÇÑ´Ù.
¡Þ »ó¼öÀÇ ¿¹ --- 10, -234, 32767, -567.89, -0.00008
2) º¯¼ö(variable)
º¯¼ö¶õ ÇÁ·Î±×·¥ÀÌ ½ÇÇàµÇ´Â µ¿¾È¿¡ ±× ó¸® ´ë»óÀÌ µÇ´Â Àڷᳪ ó¸®µÈ °á°ú¸¦ ±â ¾ï½Ãų ±â¾ï Àå¼ÒÀÇ À̸§À» ¸»ÇÏ´Â °ÍÀ¸·Î »ó¼ö¿Í´Â ´Þ¸® ÇÁ·Î±×·¥ÀÌ ½ÇÇàµÇ´Â µµÁß¿¡ ±× °ªÀÌ º¯ÇÒ ¼ö ÀÖ´Ù.
¡Þº¯¼öÀÇ ¿¹ --- a, b, c, add, sub, mul, div
3) º¯¼ö¸íÀ» ¸¸µå´Â ±ÔÄ¢
¨çº¯¼ö¸íÀ¸·Î »ç¿ëÇÒ ¼ö ÀÖ´Â ¹®ÀÚ´Â A¡Z, a¡z, 0¡9, _ÀÌ´Ù.
¨èº¯¼ö¸íÀÇ Ã¹¹®ÀÚ´Â ¹Ýµå½Ã ¿µ¹®ÀÚ³ª _·Î ½ÃÀ۵Ǿî¾ß ÇÑ´Ù.
¨éº¯¼ö¸íÀº 32ÀÚ±îÁö¸¸ À¯È¿ÇÏ´Ù. (8¹®ÀÚ¸¸ À¯È¿ÇÑ °Íµµ ÀÖÀ½)
¨ê¿¹¾à¾î´Â º¯¼ö¸íÀ¸·Î »ç¿ëÇÒ ¼ö ¾øÀ¸³ª º¯¼ö¸í ³»¿¡ Æ÷ÇԵǴ °ÍÀº °ü°è¾ø´Ù.
¨ë¿µ¹®ÀÚÀÇ ´ë, ¼Ò¹®ÀÚ´Â º°°³ÀÇ °ÍÀ¸·Î ±¸ºÐµÈ´Ù.
¡ºº¸±â¡»º¯¼ö¸íÀÇ ¿¹
»ç¿ë°¡´ÉÇÑ ¿¹ |
»ç¿ë ºÒ°¡´ÉÇÑ ¿¹ |
ÀÌ À¯ |
i integer_var Number_of_pen Seoul_88_Olympic |
a*b value of sum 3dollor int |
*±âÈ£ »ç¿ë ºÒ°¡ °ø¹é »ç¿ë ºÒ°¡ ù¹®ÀÚ°¡ ¼ýÀÚ ¿¹¾à¾î |
¡Ø »ó¼ö¿Í º¯¼öÀÇ ¿¹
counter = counter + 30
| | X»ó¼ö
+---------+---¡æº¯¼ö
À§ ¹®ÀåÀº º¯¼ö counterÀÇ ³»¿ë¿¡ 30À» ´õÇÏ¿© º¯¼ö counter¿¡ ´Ù½Ã ´ëÀÔ ½ÃÅ°¶ó´Â ÀǹÌÀÌ´Ù.
¡Ø ¿¹¾à¾î(reservd word)
¿¹¾à¾î¶õ ±× ÀÇ¹Ì¿Í ¿ëµµ°¡ ¹Ì¸® Á¤ÀǵǾî ÀÖ´Â ´Ü¾î·Î¼ Á¤ÀÇµÈ ¿ëµµ·Î »ç¿ëÇÏÁö ¾Ê°Å ³ª öÀÚ°¡ Ʋ¸®¸é ¿À·ù°¡ ¹ß»ýÇÑ´Ù.
¿¹¾à¾îÀÇ ¿¹¸¦ µé¸é ´ÙÀ½°ú °°Àº °ÍµéÀÌ ÀÖ´Ù.
¨çÈ帧ÀÇ Á¦¾î¿¡ °üÇÑ ¿¹¾à¾î --- for, while, do, if , else, switch, case, default
break, countinue, goto, return
¨èµ¥ÀÌÅÍ Çü¿¡ °üÇÑ ¿¹¾à¾î --- char, double, float, int, long, short, struct, union
unsigned, typedef, enum, void
¨é±â¾ï Àå¼ÒÀÇ Á¾·ù¿¡ °üÇÑ ¿¹¾à¾î --- auto, extern, register, static
¨ê±âŸ --- sizeof
¿¹¾à¾îµé¿¡ ´ëÇÑ ±¸Ã¼ÀûÀÎ ¼³¸íÀº ÇÊ¿äÇÒ ¶§¸¶´Ù Çϳª Çϳª ¼³¸íÇϱâ·Î ÇÑ´Ù.
7. Á¤¼öÇü µ¥ÀÌÅÍÀÇ »ç¿ë
CÇÁ·Î±×·¡¹Ö ¾ð¾î´Â ´ÙÀ½°ú °°Àº ±âº»ÀûÀÎ µ¥ÀÌÅÍÀÇ ÇüÀ» ÁغñÇÏ°í ÀÖ´Ù.
+-- Á¤¼öÇü ------+- short
|
| +- unsigned short(¹«ºÎÈ£ ´ÜÁ¤¼öÇü)
| +- int (Á¤¼öÇü)
| +- unsigned int (¹«ºÎÈ£ Á¤¼öÇü)
±âº»Çü -----+ +- long(ÀåÁ¤¼öÇü)
| +- unsigned long(¹«ºÎÈ£ ÀåÁ¤¼öÇü)
+-- ½Ç¼öÇü ------+- float (½Ç¼öÇü)
| +- double (¹èÁ¤µµ ½Ç¼öÇü)
+-- ¹®ÀÚÇü ------+- char (¹®ÀÚÇü)
+- unsigned char(¹«ºÎÈ£ ¹®ÀÚÇü)
¸ðµç µ¥ÀÌÅÍÀÇ ÇüÀ» ±¸Ã¼ÀûÀ¸·Î ¼³¸íÇÏ´Â °ÍÀº Ãʺ¸Àڵ鿡°Ô È¥µ¿¸¸ ÃÊ·¡ÇÒ ¿ì·Á°¡ ÀÖÀ¸¹Ç·Î Á¦¥²ÀåÀÌ ³¡³¯ ¶§±îÁö´Â Á¤¼öÇü µ¥ÀÌÅÍ ¸¸À» »ç¿ëÇϱâ·Î ÇÑ´Ù.
1)Á¤¼öÇü µ¥ÀÌÅÍ
Á¤¼öÇü µ¥ÀÌÅÍ´Â ¼Ò¼öÁ¡ ÀÌÇϸ¦ Æ÷ÇÔÇÏÁö ¾Ê´Â Á¤¼öÀÇ ÇüŸ¦ °®´Â µ¥ÀÌÅ͸¦ ¸»ÇÏ´Â °ÍÀ¸·Î ´ÙÀ½°ú °°Àº Á¾·ùµéÀÌ ÀÖ´Ù.
Á¤¼öÇüÀÇ ÀڷḦ ³ªÅ¸³»´Â intÇüÀº 2Byte(Áï 1Word,16Bit)À̹ǷΠ³ªÅ¸³¾¼ö ÀÖ´Â ¼öÄ¡ÀÇ Á¾·ù´Â 65,536°¡ÁöÀÌ´Ù.(2ÀÇ 16½Â - ¼öÇн𣿡 Á¹Áö ¾ÊÀº»ç¶÷Àº ´Ù ¾È´Ù) ºÎÈ£¸¦ »ç¿ëÇÒ ÇÊ¿ä°¡ ¾ø´Â Á¤¼öÇü º¯¼ö(Unsigned int)´Â 0¿¡¼ 65,536±îÁö ¹üÀ§¸¦ ³ªÅ¸³¾ ¼ö°¡ ÀÖÀ¸³ª, ÀÏ¹Ý intÇü º¯¼ö´Â ¾ç¼ö, 0 ,À½¼ö¸¦ ¸ðµÎ»ç¿ëÇØ¾ß ÇϹǷΠ¹ÝÀ¸·Î ³ª´©¾î -32,768 ~ 32,767 ( 0Àº ÆíÀÇ»ó ¾ç¼ö¿¡ ¼ÓÇÑ´Ù )»çÀÌÀÇ ¹üÀ§¸¦ °¡Áö°Ô µÇ´Â °ÍÀÌ´Ù.
±×·¯¸é, int a = 32767, b = 1, sum;
sum = a + b ; ¿¡¼ sumÀÇ °ªÀº ¾ó¸¶Àϱî?
¹Ù·Î,¿À¹öÇ÷ο찡 ¹ß»ýÇÑ´Ù. ½ÇÁ¦´Â 32768ÀÌ µÇÁö¸¸ ¹üÀ§¸¦ ³Ñ¾î¼¹Ç·ÎsumÀÇ °ªÀº -1À̶ó´Â ¾îó±¸´Ï ¾ø´Â °ªÀÌ ¹ß»ýÇÑ´Ù. ±×·¯¹Ç·Î ¿ì¸®´Â ¿¬»êÀ» ÇÒ ¶§, ¼öÄ¡ÇüÀÇ ¹üÀ§¸¦ °í·ÁÇÏ¿©¾ß ±«Â¥ ÇÁ·Î±×·¥À» »ý»êÇÏÁö ¾Ê°Ô µÈ´Ù.
ÄÄÇ»ÅÍ¿¡¼´Â ¸ðµç ÀڷḦ 2Áø¼ö·Î Ãë±ÞÇÑ´Ù.
int a=15¶ó°í ÇßÀ»¶§,ÄÄÇ»Åͳ»ºÎ¿¡¼´Â a¸¦ 000000000001111(intÇüÀº2¹ÙÀÌÆ®À̹ǷÎ)·Î±â¾ïÇÑ´Ù.
±×·¯¸é, int b=-15¶ó°í ÇßÀ» ¶§ ¾î¶»°Ô ±â¾ïÀ» ÇÒ±î?
ÄÄÇ»ÅÍ´Â 2Áø¼ö·Î À½¼ö¸¦ Ç¥ÇöÇÒ ¶§ 2ÀÇ º¸¼ö¸¦ ÃëÇÏ´Â ¹æ¹ýÀ» ÀÌ¿ëÇϴµ¥
±× ¹æ¹ýÀº ¾Æ·¡¿Í °°´Ù.
(1) ¾ç¼ö°ª¿¡´Ù°¡ 1ÀÇ º¸¼ö¸¦ ÃëÇÑ´Ù(ºñÆ®¹ÝÀü).
(2) (1)ÀÇ °á°ú¿¡ 1À» ´õÇÑ´Ù.
15 => (1) 1111111111110000 (1ÀÇ º¸¼ö¸¦ ÃëÇÔ)
(2) 1111111111110001 => -15 (1À» ´õÇÔ)
ºÎÈ£¸¦ °í·ÁÇÏ´Â Á¤¼öÇü(int)ÀÇ °æ¿ì¿¡´Â¸ÇÁÂÃø ÃÖ»óÀ§ºñÆ®°¡ 0ÀÌ¸é ¾ç¼ö·Î,1À̸é À½¼ö·Î º»´Ù.
ÇÏÁö¸¸ unsigned int(ºÎÈ£¾ø´Â Á¤¼ö)ÇüÀÇ °æ¿ì¿¡´Â ¾ç¼ö¸¸À» Ãë±ÞÇϹǷÎÃÖ»óÀ§ ºñÆ®¸¦ °í·ÁÇÏÁö ¾Ê´Â´Ù.
¿¹¸¦ µé¾îº¸ÀÚ. 1111111111110001°¡ intÇüÀ̶ó¸é,
ÃÖ»óÀ§ºñÆ®°¡ 1À̹ǷΠÀÌ °ªÀº À½¼öÀ̹ǷΠ2ÀÇ º¸¼ö¸¦ Ãë
ÇÏ¿© 0000000000001111(15)ÀÇ À½¼ö°ªÀÎ -15°¡ µÈ´Ù.
¹Ý¸é¿¡ 1111111111110001ÀÌ unsigned intÇüÀ̶ó¸é,
ÃÖ»óÀ§ºñÆ®¿Í´Â °ü°è¾øÀÌ 10Áø¼ö·Î 65521ÀÌ µÈ´Ù.
ÀåȲÇÏ°Ô ¼³¸íÀ» ÇÏ¿´´Âµ¥, ±âº»ÀûÀ¸·Î ¾Ë¾ÆµÎ¾î¾ß ÇÒ ³»¿ëÀ̹ǷΠ¾ð±ÞÇÏ¿´´Ù.(Àü»êÇп¡¼´Â ±âº»ÀûÀÎ ³»¿ëÀÌ´Ù) ÀϹÝÀûÀÎ ÇÁ·Î±×·¥¿¡¼´Â Á¤¼öÇüÀ̳ª ¹èÁ¤µµ Á¤¼öÇü º¯¼ö·Îµµ ÇÁ·Î±×·¥ÀÛ¼ºÀÌ °¡´ÉÇϳª, ¼öÇÐÀûÀÎ °è»êÀÌ Á¶±ÝÀÌ¶óµµ µé¾î°¡´Â ÇÁ·Î±×·¥¿¡¼´Â½Ç¼öÇüÀÌ ÇÊ¿äÇÏ°Ô µÈ´Ù.
©çintÇü (ºÎÈ£ÀÖ´Â Á¤¼öÇü)
intÇüÀº ÀϹÝÀûÀ¸·Î ÄÄÇ»ÅÍ°¡ »ç¿ëÇϴ ǥÁØ ¿öµå(word)ÀÇ Å©±â¸¦ »ç¿ëÇÑ´Ù. µû¶ó¼ 16ºñÆ® ÄÄÇ»ÅÍ¿¡¼ »ç¿ëµÇ´Â C¾ð¾î´Â 16ºñÆ®¸¦ »ç¿ëÇÏ¿© intÇü µ¥ÀÌÅ͸¦ Ç¥ÇöÇÏ°í 32ºñÆ® ÄÄÇ»ÅÍ¿¡¼´Â 32ºñÆ®¸¦ »ç¿ëÇÏ¿© intÇü µ¥ÀÌÅ͸¦ Ç¥ÇöÇÑ´Ù.
intÇü µ¥ÀÌÅ͸¦ 16ºñÆ®¸¦ »ç¿ëÇÏ¿© Ç¥ÇöÇÏ´Â °æ¿ì¿¡ »ç¿ëÇÒ ¼ö ÀÖ´Â ¼öÀÇ ¹üÀ§´Â
-32768¡32767ÀÌ°í 32ºñÆ®¸¦ »ç¿ëÇÏ¿© Ç¥ÇöÇÏ´Â °æ¿ì¿¡´Â -2147483648¡2147483647±îÁöÀÌ´Ù.
©èunsigned int(ºÎÈ£¾ø´Â Á¤¼öÇü)
intÇüÀÇ À½¼ö ¿µ¿ªÀ» ¾ç¼ö ¿µ¿ªÀ¸·Î »ç¿ëÇϴ ǥÇö ¹æ½ÄÀÌ´Ù. µû¶ó¼ ºÎÈ£°¡ -ÀÎ À½¼ö´Â »ç¿ëÇÒ ¼ö ¾ø´Ù. ÀϹÝÀûÀ¸·Î ¾ç¼ö µ¥ÀÌÅ͸¸À» Ãë±ÞÇÏ´Â °æ¿ì¿¡ »ç¿ëÇÑ´Ù.
16ºñÆ® ÄÄÇ»ÅÍ¿¡¼ »ç¿ëÇÒ ¼ö ÀÖ´Â ¼öÀÇ Çã¿ë ¹üÀ§´Â 0 ~ 65535±îÁöÀÌ°í 32ºñÆ®¸¦ »ç¿ëÇÏ´Â °æ¿ì¿¡´Â 0 ~ 4294967295±îÁöÀÌ´Ù.
©éshortÇü(short intÇü)-- ºÎÈ£ÀÖ´Â ´ÜÁ¤¼öÇü
±â¾ï ¿ë·®ÀÌ ÀûÀº ÄÄÇ»ÅÍ¿¡¼ ÀûÀº ±â¾ï ¿ë·®À¸·Î ¸¹Àº Á¤¼öÇü µ¥ÀÌÅ͸¦ ±â¾ï½ÃÅ°±â À§ÇÏ¿© ¸¶·ÃÇÑ °ÍÀ¸·Î ´ëºÎºÐÀÇ °æ¿ì 16ºñÆ®·Î µ¥ÀÌÅ͸¦ Ç¥ÇöÇÑ´Ù. 16ºñÆ® ÄÄÇ»ÅÍ¿¡ »ç¿ëµÇ´Â C¾ð¾î¿¡¼´Â intÇü°ú ±× »ç¿ë ¹üÀ§°¡ °°´Ù.
32ºñÆ® ÄÄÇ»ÅÍ¿¡¼ »ç¿ëµÇ´Â C¾ð¾îÀÇ °æ¿ì¿¡´Â ÀϹÝÀûÀ¸·Î intÇüÀº 32ºñÆ®·Î Ç¥ÇöÇÏ°í shortÇüÀº 16ºñÆ®·Î Ç¥ÇöµÈ´Ù.
shortÇüÀ¸·Î Ç¥ÇöÇÒ ¼ö ÀÖ´Â ¼öÀÇ ¹üÀ§´Â -32768 ~ 32767±îÁöÀÌ´Ù.
©êunsigned shortÇü (ºÎÈ£¾ø´Â ´ÜÁ¤¼öÇü)
shortÇüÀÇ À½¼ö ¿µ¿ªÀ» ¾ç¼ö ¿µ¿ªÀ¸·Î »ç¿ëÇϴ ǥÇö ¹æ½ÄÀÌ´Ù. µû¶ó¼ ºÎÈ£°¡ -ÀÎ À½¼ö´Â »ç¿ëÇÒ ¼ö ¾ø´Ù. unsigned shortÇüÀ¸·Î »ç¿ëÇÒ ¼ö ÀÖ´Â ¼öÀÇ Çã¿ë ¹üÀ§´Â 0 ~ 65535±îÁöÀÌ´Ù.
©ëlongÇü(ÀåÁ¤¼öÇü)
longÇüÀ¸·Î ó¸®Çϱâ Èûµç Å« Á¤¼ö¸¦ ó¸®Çϱâ À§ÇÏ¿© ¸¶·ÃµÈ °ÍÀ¸·Î 32ºñÆ®·Î Á¤¼ö¸¦ Ç¥ÇöÇÏ´Â ¹æ½ÄÀÌ´Ù. µû¶ó¼ longÇüÀ¸·Î ó¸®ÇÒ ¼ö ÀÖ´Â ¼öÀÇ ¹üÀ§´Â -2147483648 ~ 2147483647±îÁöÀÌ´Ù. 32ºñÆ® ÄÄÇ»ÅÍ¿¡¼ »ç¿ëµÇ´Â CÀÇ °æ¿ì¿¡´Â intÇü°ú »ç¿ë¹üÀ§°¡ °°´Ù.
©ìunsigned longÇü(ºÎÈ£ÀÖ´Â ÀåÁ¤¼öÇü)
longÇüÀÇ À½¼ö ¿µ¿ªÀ» ¾ç¼ö ¿µ¿ªÀ¸·Î »ç¿ëÇϴ ǥÇö ¹æ½ÄÀÌ´Ù. µû¶ó¼ ºÎÈ£°¡ -ÀÎ À½¼ö´Â »ç¿ëÇÒ ¼ö ¾ø´Ù. unsigned longÇüÀ¸·Î Ç¥ÇöÇÒ ¼ö ÀÖ´Â ¼öÀÇ ¹üÀ§´Â 0 ~ 4294967295±îÁöÀÌ´Ù.
㟍 Á¤¼öÇü µ¥ÀÌÅÍÀÇ Á¾·ù´Â ´ÙÀ½°ú °°´Ù. (16ºñÆ® ÄÄÇ»ÅÍÀÇ °æ¿ì)
Á¾ ·ù |
Å©±â |
ºÎÈ£ |
Çã ¿ë Ä¡ |
¿ë µµ |
int unsigned int short unsigned short long unsigned long |
2B 2B 2B 2B 4B 4B |
À¯ ¹« À¯ ¹« À¯ ¹« |
-32768~32767 0~65535 -32768~32767 0~65535 -2147483648~2147483647 0~4294967295 |
Á¤¼ö ó¸® ¾çÀÇ Á¤¼ö ó¸® Á¤¼ö ó¸® ¾çÀÇ Á¤¼ö ó¸® Å« Á¤¼ö ó¸® Å« ¾ç Á¤¼ö ó¸® |
㟍 16ºñÆ® ÄÄÇ»Å͸¦ »ç¿ëÇÏ¿© ¹®Á¦¸¦ ÇØ°áÇÒ ¶§ Å« Á¤¼ö¸¦ Ãë±ÞÇÏÁö ¾ÊÀ» °æ¿ì¿¡´Â longÇü À» »ç¿ëÇÏÁö ¾Ê´Â °ÍÀÌ ¹Ù¶÷Á÷ÇÏ´Ù. ¿Ö³ÄÇϸé longÇüÀº intÇüÀ̳ª shortÇüÀ» »ç¿ëÇÒ ¶§ º¸´Ù ¿¬»ê ¼Óµµ°¡ ¶³¾îÁú »Ó¸¸ ¾Æ´Ï¶ó ¸Þ¸ð¸®¸¦ ¸¹ÀÌ Â÷ÁöÇϱ⠶§¹®ÀÌ´Ù.
ÀϹÝÀûÀ¸·Î Á¤¼öÇü µ¥ÀÌÅÍ Ã³¸®½Ã¿¡´Â Ç¥ÁØ ¿öµå Å©±â¸¦ »ç¿ëÇÏ´Â intÇüÀ» »ç¿ëÇÏ´Â °ÍÀÌ ÁÁ´Ù.
¡¶¿¬½À 3¡·intÇü µ¥ÀÌÅÍ(Á¤¼öÇü µ¥ÀÌÅÍ ¶Ç´Â °íÁ¤ ¼Ò¼öÁ¡ µ¥ÀÌÅÍ)ÀÇ Ç¥Çö Çü½Ä Áß 2ÀÇ º¸ ¼ö Ç¥Çö¹ý¿¡ ´ëÇÏ¿© ¼³¸íÇÏ¿©¶ó. (´Ü, 16ºñÆ®¸¦ »ç¿ëÇÏ¿© 13°ú -13À» ¿¹·Î »ç¿ë ÇÒ °Í)
¡¶¿¬½À 4¡·unsigned intÇü µ¥ÀÌÅÍÀÇ Ç¥Çö Çü½ÄÀ» ¼³¸íÇÏ¿© º¸ÀÚ. (´Ü, 16ºñÆ®·Î 0ºÎÅÍ 65535±îÁö Ç¥ÇöµÇ´Â ÀÌÀ¯¸¦ ¼³¸íÇÏ¿©¶ó.)
¡º½Ç½À 2-04¡»
/*----------------------------------------------------------------------------------------------
* c2-04.c : Á¤¼öÇü µ¥ÀÌÅÍÀÇ Ãâ·Â
*--------------------------------------------------------------------------------------------- */
main( )
{
printf("%d\n",123);
printf("%d\n",-123);
printf("%d\n",32768);
printf("%d\n",65535);
printf("%d\n\n",1234567);
printf("%u\n",1);
printf("%u\n",-1);
printf("%u\n",-32768);
printf("%u\n",65535);
printf("%ld\n",123L);
printf("%ld\n",-123L);
printf("%ld\n\n",4294967295L);
printf("%lu\n",1L);
printf("%lu\n",-1L);
printf("%lu\n\n",4294967295L);
}
¢Ñ ½ÇÇà °á°ú
c>c2-04
123
-123
-32768
-1
-10617
1
65535
32768
65535
123
-123
-1
1
4294967295
4294967295
㽬 longÇü »ó¼ö¸¦ ³ªÅ¸³¾ ¶§¿¡´Â ¼ýÀÚ ³¡¿¡ L ¶Ç´Â l À» ºÙÀÌ´Â °ÍÀÌ ÁÁ´Ù.
123LÀ̳ª -123LÀº Å« ¼ýÀÚ´Â ¾Æ´ÏÁö¸¸ 32ºñÆ®(bit)ÀÇ longÇü µ¥ÀÌÅÍ·Î Ãë±ÞµÈ´Ù.
¡¶¿¬½À 5¡·¾Æ·¡ ¹®ÀåµéÀÇ ½ÇÇà °á°ú¸¦ ¡º½Ç½À 2-04¡»ÀÇ ½ÇÇà °á°ú¿¡¼ È®ÀÎÇÑ ÈÄ ½ÇÇà °á °ú¿Í °°ÀÌ Ãâ·ÂµÈ ÀÌÀ¯¸¦ ¼³¸íÇ϶ó.
printf("%d\n",32768);
printf("%d\n",65535);
printf("%d\n\n",1234567);
printf("%u\n",-1);
printf("%u\n",-32768);
printf("%ld\n\n",4294967295L);
printf("%lu\n", -1L);
2)Á¤¼öÇü µ¥ÀÌÅÍÀÇ Çü ¼±¾ð
CÇÁ·Î±×·¥¿¡¼ »ç¿ëµÉ ¸ðµç º¯¼ö´Â ¹Ýµå½Ã ±× º¯¼ö°¡ »ç¿ëµÇ±â Àü¿¡ int, short, longµîÀÇ Çü¼±¾ðÀ» ÇØ ÁÖ¾î¾ß ÇÑ´Ù. ±×·¡¾ß ¼±¾ðµÈ º¯¼öÀÇ À̸§°ú µ¥ÀÌÅÍÀÇ ÇüÀÌ ¼º¸³µÇ°í ±â¾ï Àå¼Ò°¡ ÇÒ´çµÈ´Ù.
¡ºº¸±â¡»Á¤¼öÇü º¯¼öÀÇ ¼±¾ð ¿¹
int counter; /* intÇü º¯¼ö counter¸¦ ¼±¾ð */
int a, b, c; /* intÇü º¯¼ö a, b, c¸¦ ¼±¾ð */
unsigned int a, y, x; /* unsigned intÇü º¯¼ö x, y, z¸¦ ¼±¾ð */
long var_1, var_2; /* longÇü º¯¼ö var_1, var_2¸¦ ¼±¾ð */
int a=0, b=10, c=30; /* intÇü º¯¼ö a, b, c¸¦ ¼±¾ðÇÏ¸é¼ °¢º¯¼ö¿¡ */
/* 0,10,30À» ÃʱⰪÀ¸·Î ±â¾ï */
㽬 int a, b, c;´Â ´ÙÀ½°ú °°ÀÌ 3°³ÀÇ ¼±¾ð¹®À¸·Î ¼±¾ðÇÒ ¼öµµ ÀÖ´Ù.
int a;
int b;
int c;
3) ½Ç¼ö Ç¥Çö ¹æ¹ý
ÄÄÇ»ÅÍ¿¡¼ ½Ç¼ö(floatÇü)¸¦ Ç¥½ÃÇÏ´Â °æ¿ì¿¡´Â ºÎµ¿¼Ò¼ýÁ¡ Çü½ÄÀ» ÀÌ¿ëÇÑ´Ù. ºÎµ¿¼Ò¼öÁ¡ Çü½Ä¿¡¼´Â ÇϳªÀÇ ¼öÄ¡¸¦ Ç¥½ÃÇϴµ¥¿¡ 4Byte¸¦ ÇÒ´çÇÑ´Ù. ù byte´Â ±× ¼öÄ¡ÀÇ ºÎÈ£¿Í Áö¼ö¸¦ Ç¥½ÃÇÏ¸ç ³²Àº 3 byte·Î´Â 1 byte ´ç10Áø¼ö 2ÀÚ¸®¸¦ BCDÇü½ÄÀ¸·Î Ç¥½ÃÇÑ´Ù. BCD(Binary Coded Digit)´Â ¿ì¸®¸»·Î 2ÁøÈ 10Áø¼ö¶ó°í ºÎ¸£¸ç, 4ºñÆ®·Î 10Áø¼ö 1ÀÚ¸®¸¦ Ç¥½ÃÇÏ´Â Çü½ÄÀ»¸»ÇÑ´Ù.
4ºñÆ®·Î Ç¥½ÃÇÒ ¼ö ÀÖ´Â ¼öÀÇ Á¾·ù´Â 2ÀÇ 4½Â(0 ~ 15±îÁö)°¡Áö°¡ ÀÖÁö¸¸BCD¿¡¼´Â 0¿¡¼ 9±îÁö¸¸ Ç¥½ÃÇÑ´Ù. 1994¸¦ BCD·Î Ç¥½ÃÇϸé,
+----+----+----+----+
|0001|1001|1001|0100| (4ºñÆ®·Î 10Áø¼ö 1ÀÚ¸®¸¦ Ç¥½Ã)
+----+----+----+----+
1 9 9 4
¿¹¸¦ µé¾î float a=1994; À϶§ ÄÄÇ»ÅÍ¿¡¼´Â,
+---------------------------+
| (ÀÌ ¿µ¿ªÀº BCDÇü½ÄÀ¸·Î) |
+----+----+----+----+----+----+----+----+
|xyyy|yyyy|0001|1001|1001|0100|0000|0000| (ÃÑ 4 byte)
+++--+---++----+----+----+----+----+----+
|| | 1 . 9 9 4 0 0
|+------+
| | * ¼Ò¼öÁ¡Àº Ç×»ó ÀÌ À§Ä¡¿¡ ÀÖ´Â °É·Î °£ÁÖ
| |
| +---------- Áö¼ö(10ÀÇ ¸è½ÂÀ» ³ªÅ¸³¿) .¿©±â¼± 0000011
|
+-------------- ºÎÈ£(¾ç¼öÀ̸é 0, À½¼öÀ̸é 1) .¿©±â¼± 0
==> 1.99400 * 10ÀÇ 3½Â (1994.00) : ½Ç¼ö Ç¥Çö ¹æ½ÄÀÌ´Ù.
À§¿¡¼ º¸¸é Áö¼öÀÇ Ç¥ÇöÀ» 7bit·Î ÇÏ°í ÀÖ´Ù. 7ºñÆ®·Î ÇÒ ¼ö ÀÖ´Â ÀÚ·áÀÇ Á¾·ù´Â 128°¡ÁöÀε¥, À½¼ö, ¾ç¼ö¸¦ ±¸ºÐÇØ¾ß ÇϹǷΠÁö¼öÀÇ ¹üÀ§´Â -64¿¡¼ 63±îÁö°¡ µÈ´Ù.
À§¿¡¼ º¸µíÀÌ ½Ç¼öÇü(float) ÀÚ·áÀÇ À¯È¿ ¼öÄ¡´Â 6ÀÚ¸®ÀÌ´Ù. ±×·¯¹Ç·Î 7ÀÚ¸® ÀÌ»óÀÇ ¼öÄ¡¸¦ ±â¾ï½ÃÅ°´Â °æ¿ì¿¡´Â 7¹ø° ÀÚ¸®¿¡¼ ¹Ý¿Ã¸²ÀÌ ÇàÇÏ¿©Áø´Ù.
C¿¡¼´Â ¼öÄ¡ÀÇ À¯È¿ ÀÚ¸®¼ö¸¦ 2¹è·Î ´Ã¸®±â À§ÇØ ¹èÁ¤µµ ½Ç¼öÇü(double)À» Áö¿øÇÑ´Ù. ¹èÁ¤µµ ½Ç¼ö´Â 8byte·Î Ç¥½ÃÇÏ°Ô µÇ¸ç, À¯È¿ÀÚ¸®¼ö´Â 14ÀÚ¸®·Î ´Ã¾î³´Ù.
( ÃÑ 8 byte )
+----+----+----+----+----+----+----+----+ +----+----+----+----+
|xyyy|yyyy|0000|0000|0000|0000|0000|0000|....|0000|0000|0000|0000|
+++--+---+++---+----+----+----+----+----+ +----+----+----+----+
|| | | |
|+------+ +-----------------------------....--------------------+
|Áö¼öºñÆ® 7 byte (À¯È¿ÀÚ¸®¼ö´Â 14ÀÚ¸®·Î ´Ã¾î³´Ù)
|
ºÎÈ£ºñÆ®
8. ´ëÀÔ ¿¬»êÀÚ¿Í ¿¬»ê½Ä
´ëÀÔ ¿¬»êÀÚ(assignment operator) '='´Â ±× ¿À¸¥ÂÊÀÇ ¼ö½ÄÀÇ °ªÀ» ¿ÞÂÊÀÇ º¯¼ö¿¡ ´ëÀÔÇÒ ¶§ »ç¿ëÇÏ´Â ¿¬»ê ±âÈ£·Î¼ ġȯ ¿¬»êÀÚ¶ó°í ÇÑ´Ù.
±×¸®°í ´ëÀÔ ¿¬»êÀÚ¸¦ »ç¿ëÇÑ ¼ö½ÄÀ» ´ëÀÔ ¿¬»ê½Ä(assignment expression) ¶Ç´Â ´ëÀÔ½ÄÀ̶ó°í ÇÑ´Ù.
¡ºº¸±â¡»´ëÀÔ½ÄÀÇ ¿¹
a=10; /*10À» º¯¼ö a¿¡ ´ëÀÔ(±â¾ï)½ÃÅ°¶ó´Â ÀÇ¹Ì */
b=a; /*º¯¼ö aÀÇ °ªÀ» º¯¼ö b¿¡ ´ëÀÔ */
i=i+1; /*º¯¼ö i¿¡ 1À» ´õÇÑ °ªÀ» i¿¡ ´ëÀÔ */
x=y=z=0; /*0À» º¯¼ö x, y, z¿¡ ´ëÀÔ */
㽬 x=y=z=0;Àº x=0, y=0, z=0;°ú °°Àº ÀǹÌÀÌ´Ù.
´ëÀԽĿ¡¼ '='±âÈ£ ¿ÞÂÊÀÇ ÇÇ¿¬»êÀÚ´Â º¯¼ö»Ó¸¸ ¾Æ´Ï¶ó ´ëÀÔÀÌ °¡´ÉÇÑ ¸ðµç °ÍÀ¸·Î °¢Á¾ º¯¼ö, ¹è¿ ¿ä¼Ò, ±¸Á¶Ã¼ ±¸¼º¿ø, Æ÷ÀÎÅÍÀÇ ´ë»óü µîÀÌ ¿Ã ¼ö ÀÖÀ¸¸ç(´çºÐ°£Àº ¹Ýµå½Ã º¯¼ö¸¦ »ç¿ëÇÏ¿©¾ß ÇÑ´Ù°í »ý°¢Çϱâ·Î ÇÏÀÚ), ¿À¸¥ÂÊ ÇÇ¿¬»êÀÚ´Â ¾î¶°ÇÑ Á¾·ùÀÇ ¼ö½ÄÀÌ »ç¿ëµÇ¾îµµ °ü°è¾ø´Ù.
±×¸®°í C¾ð¾î¿¡¼´Â ´ëÀÔ½Ä ÀÚü°¡ ¾î¶°ÇÑ °ªÀ» °®´Â´Ù´Â »ç½ÇÀ» ±â¾ïÇØ¾ß ÇÑ´Ù. ´ëÀÔ½ÄÀÇ °ªÀº '='±âÈ£ ÁÂÃøÀÇ º¯¼ö¿¡ ±â¾ïµÈ °ªÀÌ µÈ´Ù. ¿¹¸¦ µé¸é a=0; À̶ó´Â ´ëÀÔ½ÄÀÇ °ªÀº 0À̵ȴÙ. ¿Ö³ÄÇϸé À§ ½ÄÀÇ ¿¬»ê °á°ú aÀÇ °ªÀÌ 0À̱⠶§¹®ÀÌ´Ù. µû¶ó¼ ¾Æ·¡ÀÇ ¿ÞÂÊ 3°³ÀÇ ´ëÀÔ½ÄÀ» ¿À¸¥ÂÊ°ú °°ÀÌ ÇϳªÀÇ ´ëÀÔ½ÄÀ¸·Î ³ªÅ¸³¾ ¼ö ÀÖ´Ù.
a = 0;
b = a + 10; ¢¡ c = ( b = ( a = 0 ) + 10 ) + 20;
c = b + 20;
9. »ê¼ú ¿¬»êÀÚ¿Í »ê¼ú½Ä
µ¡¼À, »¬¼À, °ö¼À, ³ª´°¼À, ³ª¸ÓÁö °è»ê µîÀ» ¼öÇàÇÒ ¸ñÀûÀ¸·Î »ç¿ëÇÏ´Â ¿¬»ê ±âÈ£¸¦ »ê¼ú ¿¬»êÀÚ(arithmetic operator)¶ó°í ÇÏ¸ç »ê¼ú ¿¬»êÀÚ¿¡ ÀÇÇÏ¿© °áÇÕµÈ ½ÄÀ» »ê¼ú½Ä(arith-
metic expression) ¶Ç´Â »ê¼ú ¿¬»ê½ÄÀ̶ó°í ÇÑ´Ù.
»ê¼ú ¿¬»êÀÚÀÇ Á¾·ù¿Í ±× ±â´É ¹× ¿¬»ê ¿ì¼± ¼øÀ§¸¦ Ç¥·Î ³ªÅ¸³»¸é ´ÙÀ½°ú °°´Ù.
㽬 »ê¼ú ¿¬»êÀÚÀÇ Á¾·ù¿Í ±× ±â´É
¿¬ »ê ÀÚ |
¸í Ī |
±â ´É |
»ç¿ë¿¹ |
¿ì¼±¼øÀ§ |
- * / % + - |
ºÎÈ£ ¿¬»êÀÚ °ö¼À ¿¬»êÀÚ ³ª´°¼À ¿¬»êÀÚ ³ª¸ÓÁö ¿¬»êÀÚ µ¡¼À ¿¬»êÀÚ »¬¼À ¿¬»êÀÚ |
ºÎÈ£ Àüȯ °ö¼À ³ª´°¼À ³ª¸ÓÁö °è»ê µ¡¼À »¬¼À |
-a a*b a/b a%b a+b a-b |
1 2 2 2 3 3 |
㽬 »ê¼ú½Ä¿¡¼ ¿¬»ê ±âÈ£¸¦ »ý·«Çؼ´Â ¾ÈµÇ¸ç, ¿¬»ê ¼øÀ§¸¦ °Á¦·Î º¯°æ ½Ãų ¶§ »ç¿ëÇÏ ´Â °ýÈ£´Â ¹Ýµå½Ã ¼Ò°ýÈ£¸¸À» »ç¿ëÇÏ¿©¾ß ÇÑ´Ù.
»ê¼ú½Ä ³»¿¡ °ýÈ£°¡ »ç¿ëµÇ¾úÀ¸¸é °ýÈ£ ¾ÈÀÇ ¼ö½ÄÀÌ Á¦ÀÏ ¸ÕÀú ½ÇÇàµÇ°í µ¿ÀÏÇÑ ¿ì¼± ¼øÀ§ÀÎ °æ¿ì¿¡´Â ¿ÞÂÊ¿¡¼ ¿À¸¥ÂÊÀ¸·Î ¿¬»êÀÌ ¼öÇàµÈ´Ù.
¡ºº¸±â¡»»ê¼ú½ÄÀÇ ¿ì¼± ¼øÀ§
x + ( a + b ) * d
| +---+ |
| ¨ç |
| +-------+
| ¨è
+-----------+
¨é
㽬 ³ª¸ÓÁö ¿¬»êÀÚ
³ª¸ÓÁö ¿¬»êÀÚ %´Â µÎ Á¤¼ö µ¥ÀÌÅ͸¦ ³ª´°¼ÀÇÑ ÈÄ ±× ³ª¸ÓÁö °ªÀ» ±¸ÇÒ ¶§ »ç¿ëÇÑ´Ù.
¿¹¸¦ µé¾î 30 % 4ÀÇ °æ¿ì
30 ¡À 4 = 7 2 À̹ǷΠ±¸ÇÏ´Â °ªÀº 2°¡ µÈ´Ù.
㽬³ª¸ÓÁö ¿¬»êÀÚ »ç¿ë½Ã ÁÖÀÇ »çÇ×
¨ç ³ª´°¼À ¿¬»êÀÚ /¸¦ »ç¿ëÇÏ¿© µÎ °³ÀÇ Á¤¼ö³¢¸® ³ª´°¼ÀÀ» ¼öÇàÇÒ ¶§ ³ª´°¼À °á°ú ¿¡¼ ¹ß»ýÇÏ´Â ¼Ò¼öÀÌÇÏ´Â ¹«Á¶°Ç À߶ó ¹ö¸®°í Á¤¼ö°ª¸¸ ÃëÇÑ´Ù.
[º¸±â] 5 / 2ÀÇ °ª 2
¨è Á¤¼öÇü°ú ½Ç¼öÇü ¿¬»êÀÇ °æ¿ì ¿¬»ê °á°ú´Â ½Ç¼öÇüÀÌ µÈ´Ù.
[º¸±â] 5. / 4ÀÇ °ª 1.25
À§¿Í °°ÀÌ µÎ ÇÇ¿¬»êÀÚ Áß ¾î´À Çϳª°¡ ½Ç¼öÇüÀÌ¸é ³ª¸ÓÁö Á¤¼öÇü µ¥ÀÌÅ͵µ ½Ç¼ö ÇüÀ¸·Î º¯È¯µÈ ÈÄ ¿¬»êÀÌ ÀÌ·ç¾î Áø´Ù.
¡º½Ç½À 2-05 ¡»¿¹Á¦ ÇÁ·Î±×·¥
/*----------------------------------------------------------------------------------------------
* c2-05.c : ½Ç½À ¿¬»êÀÚÀÇ È°¿ë
*---------------------------------------------------------------------------------------------*/
main( )
{
int a, b, add, sub, mul, div, mod;
a=10, b=5;
add=a+b;
sub=a-b;
mul=a*b;
div=a/b;
mod=a%b;
printf("%d+%d=%d\n",a,b,add);
printf("%d-%d=%d\n",a,b,sub);
printf("%d*%d=%d\n",a,b,mul);
printf("%d/%d=%d\n",a,b,div);
printf("%d%%%d=%d\n",a,b,mod); /* %±âÈ£¸¦ Ãâ·ÂÇÏ·Á¸é %¸¦ µÎ°³ */
/* »ç¿ëÇÑ´Ù. (Á¦¥´Àå Âü°í) */
}
¢Ñ ½ÇÇà °á°ú
c>c2-05
10+5=15
10-5=5
10*5=50
10/5=2
10%5=0
¡¶¿¬½À 6¡·¾Æ·¡ ´ëÀÔ½Ä(ġȯ½Ä)À» ½ÇÇàÇÑ ÈÄ °¢ º¯¼öÀÇ °ªÀº ?
1. a=b=c=0;
2. c=(b=(a=5)+1)+2;
㽬Âü°í
C¾ð¾î¿¡¼ ´ëÀÔ½ÄÀº ±× ÀÚü°¡ °ªÀ» °®´Â´Ù. ¿¹¸¦ µé¸é a=5;ÀÇ °ªÀº =±âÈ£ ¿ìÃøÀÇ »ó ¼ö°ª 5°¡ ´ëÀÔµÈ °ª ÀÚü°¡ µÈ´Ù. Áï a=5;ÀÇ °ªÀº 5ÀÎ °ÍÀÌ´Ù.
¡¶¿¬½À 7¡·´ÙÀ½ ´ëÀÔ½ÄÀÇ ¿¬»ê ¼øÀ§¸¦ Ç¥½ÃÇÏ¿©¶ó.
1. c=(a-b)*c;
2. s=a/b*-c;
¡¶¿¬½À 8¡·¾Æ·¡ ÇÁ·Î±×·¥ÀÇ ½ÇÇà °á°ú¸¦ Ç¥½ÃÇÏ¿©¶ó.
main( )
{
int a,b,c,d,e;
a=10;
b=c=20;
d=a+b+c;
e=(a-b)*c;
printf("a=%d\n",a);
printf("b=%d\n",b);
printf("c=%d\n\n",c);
printf("a+b+c=%d\n",d);
printf("(a-b)*c=%d\n",e);
}
¡¶¿¬½À 9¡·a=10, b=20À» Á¤¼öÇü º¯¼ö¿¡ ±â¾ï½ÃŲ ÈÄ a¿Í bÀÇ °ªÀ» ¹Ù²Ù¾î ±â¾ï½ÃÅ°°í a¿Í bÀÇ °ªÀ» Ãâ·Â½ÃÅ°´Â ÇÁ·Î±×·¥À» ÀÛ¼ºÇÏ¿©¶ó.
¢Ñ ½ÇÇà °á°ú
ÃʱâÄ¡ ===> a=10 b=20
±³È¯ÈÄ ===> a=20 b=10
¡¶¿¬½À 10¡·1000¡À30ÀÇ ¸ò°ú ³ª¸ÓÁö¸¦ ±¸ÇÏ¿© Ãâ·ÂÇÏ´Â ÇÁ·Î±×·¥À» ÀÛ¼ºÇÏ¿©¶ó.
¢Ñ ½ÇÇà °á°ú
1000 / 30 = 33 10
¡¶¿¬½À 11¡·a=5, b=7, c=3À϶§ ´ÙÀ½ ½ÄÀÇ °ªÀ» ±¸ÇÏ¿© Ãâ·ÂÇÏ´Â ÇÁ·Î±×·¥À» ÀÛ¼ºÇÏ¿©¶ó.
c+(a-b)/(a-c)
¢Ñ ½ÇÇà °á°ú
3 + (5-7)^2 / (5-3) = 5
¡¶¿¬½À 12¡·À§ ¼ö½ÄÀ» ¿¬»ê½ÄÀ¸·Î ¹Ù²Û ÈÄ ¿¬»ê ¼øÀ§¸¦ Ç¥½ÃÇÏ¿©¶ó.
<Ç¥1> °¢ ¿¬»êÀÚµéÀÇ Á¾·ù¿Í ¿ì¼± ¼øÀ§
+-----------+-------+-----------------------------------+----+
| ´ë ºÐ ·ù |¼ÒºÐ·ù | ¿¬ »ê ÀÚ |°áÇÕ|
| | | |±ÔÄ¢|
+-----------+-------+-----------------------------------+----+³ô´Ù
| ÀÏ Â÷ ½Ä |primery| ( ) [ ] -> . | -> |
+-----------+-------+-----------------------------------+----+
|´ÜÇ× ¿¬»êÀÚ| ´Ü Ç× | ! ~ ++ -- - cast¿¬»êÀÚ * & sizeof | <- |
+-----------+-------+-----------------------------------+----+
| | ½Â Á¦ | * / % | -> |
| +-------+-----------------------------------+----+
| | °¡ °¨ | + - | -> | ¿ì
| +-------+-----------------------------------+----+
| |½¬ÇÁÆ® | << >> | -> |
| +-------+-----------------------------------+----+
| | ºñ ±³ | < <= > >= | -> | ¼±
| +-------+-----------------------------------+----+
|ÀÌÇ× ¿¬»êÀÚ| µî °¡ | == != | -> |
| +-------+-----------------------------------+----+
| |ºñÆ®AND| & | -> |
| +-------+-----------------------------------+----+
| |ºñÆ®XOR| ^ | -> | ¼ø
| +-------+-----------------------------------+----+
| |ºñÆ® OR| | | -> |
| +-------+-----------------------------------+----+
| |³í¸®AND| && | -> | À§
| +-------+-----------------------------------+----+
| |³í¸® OR| || | -> |
+-----------+-------+-----------------------------------+----+
|»ïÇ× ¿¬»êÀÚ| Á¶ °Ç | ? : | <- |
+-----------+-------+-----------------------------------+----+
| ġ ȯ | | = += -= *= /= %= | |
| | ġ ȯ +-----------------------------------+ <- |
| ¿¬ »ê ÀÚ | | >>= <<= &= ^= != | |
+-----------+-------+-----------------------------------+----+
|¼øÂ÷ ¿¬»êÀÚ| ¼ø Â÷ | , | -> |³·´Ù
+-----------+-------+-----------------------------------+----+
10. ºñÆ® ¿¬»êÀÚ
ºñÆ® ¿¬»êÀÚ¶õ ºñÆ®Á¶ÀÛÀ» À§ÇØ ¾²ÀÌ´Â ¿¬»êÀÚÀÌ´Ù. ÁÖÀÇÇÒ Á¡Àº ¿ÀÆÛ·£µå´Â Á¤¼ö ¶Ç´Â Á¤¼öÇüÀ̶ó¾ß ÇÑ´Ù.
(1) ºñÆ®ÇÕ ¿¬»êÀÚ(OR- |) : Á¿ìÀÇ ½ÄÀ» ÀÌÁø¼ö·Î ÇÏ´Â ºñÆ®ÇÕÀ» ±¸ÇØÁØ´Ù.
a = 117, b = 216ÀÏ ¶§ a|bÀÇ °á°ú
117 => 0000 0000 0111 0101
216 => 0000 0000 1101 1000
----------------------------
0000 0000 1111 1101 => 253
ºñÆ®ÇÕ ¿¬»êÀÚÀÇ ¿ëµµ´Â ¹Ù·Î ƯÁ¤ÇÑ ºñÆ®¸¦ 1·Î ¼¼Æ®½Ãų¶§ ÀÌ¿ëµÈ´Ù.
a = 117¶§ »óÀ§ 4ºñÆ®¸¦ 1·Î ÇÑ´Ù.
117 => 0000 0000 0111 0101
1111 0000 0000 0000
----------------------------
1111 0000 0111 0101 => 1·Î ¼¼Æ®ÇÏ·Á´Â ºÎºÐ¸¸ 0À¸·Î
(2) ºñÆ®°ö ¿¬»êÀÚ(AND- &) : Á¿ìÀÇ ½ÄÀ» 2Áø¼ö·Î ÇÏ´Â ºñÆ®°öÀ»±¸ÇØÁØ´Ù.
a = 117, b = 216ÀÏ ¶§ a&bÀÇ °á°ú
117 => 0000 0000 0111 0101
216 => 0000 0000 1101 1000
---------------------------
0000 0000 0101 0000 => 80
ºñÆ®°ö ¿¬»êÀÚÀÇ ¿ëµµ´Â ƯÁ¤ ºñÆ®¸¦ 0ÀÇ·Î ¸®¼ÂÇÏ·Á´Â °æ¿ì¿¡ ÀÌ¿ëµÈ´Ù.
a = 44149ÀÏ ¶§ »óÀ§ 4ºñÆ®¸¦ 0À¸·Î ÇÑ´Ù.
44149 => 1010 1100 0111 0101
0000 1111 1111 1111
-------------------------------
0000 1100 0111 0101 => 0À¸·Î ¸®¼ÂÇÏ·Á´Â ºÎºÐ¸¸ 1·Î
(3) ¹èŸÀû ³í¸®ÇÕ ¿¬»êÀÚ(XOR- ^) : Á¿ìÀÇ ½ÄÀ» 2Áø¼ö·Î ÇÏ´Â ¹èŸÀû³í¸®ÇÕÀ» ±¸ÇÑ´Ù.
a = 117, b = 216ÀÏ ¶§ a^bÀÇ °á°ú
117 => 0000 0000 0111 0101
216 => 0000 0000 1101 1000
----------------------------
0000 0000 1010 1101 => 173
µÎ °³ÀÇ ºñÆ®°¡ µ¿ÀÏÇϸé 0, ´Ù¸£¸é 1ÀÌ µÈ´Ù.
(4) ºñÆ®¹ÝÀü ¿¬»êÀÚ(NOT- ~) : ~´Â ºÎÈ£¸¦ ¹ÝÀüÇÏ´Â ¿¬»êÀڷμ ºñÆ®1Àº
0À¸·Î, 0Àº 1·Î ¸¸µç´Ù. (1ÀÇ º¸¼ö ¿¬»êÀÚ¶ó°íµµ ÇÑ´Ù)
a = 117ÀÏ ¶§ ~aÀÇ °á°ú
117 => 0000 0000 0111 0101
----------------------------
1111 1111 1000 1010 => -118
(5) shift ¿¬»êÀÚ( <<,>> ) : ÁÂÃø ½ÄÀÇ °á°ú¸¦ ¿ìÃø½Ä¸¸Å ºñÆ®¸¦ À̵¿½ÃŲ´Ù. ÀÌ ¶§ ¹Ð ¸®´Â ÂÊÀÇ ¸Ç ³¡ ºñÆ®´Â ¹Ð·Á³ª¿À°í, ¹Ý´ëÂÊÀÌ ¸¶Áö¸· ºñÆ®´Â 0À¸·Î ä¿öÁø´Ù.
ÁÂÃøÀ¸·Î ½¬ÇÁÆ®ÇÑ °æ¿ì¿¡´Â ¸Ç ¿ìÃø¿¡ ¹«Á¶°Ç 0ÀÌ Ã¤¿öÁöÁö¸¸ ¿ìÃøÀ¸·Î ½¬ÇÁÆ®ÇÑ °æ¿ì¿¡´Â ºÎÈ£°¡ ¾ø´Â Á¤¼öÀ̰ųª ¸Ç ÁÂÃøÀÇ ºñÆ®°¡ 0(¾ç¼ö)À̸é 0À» ä¿ì°í, ºÎÈ£°¡ ÀÖ´Â Á¤¼öÀÌ°í ¸Ç ÁÂÃøÀÇ ºñÆ®°¡ 1(À½¼ö)ÀÏ ¶§´Â 1À» ä¿î´Ù. Áï, ¾µµ¥ ¾øÀÌ ºÎÈ£¸¦ ¹Ù²ÙÁö ¾Ê´Â´Ù°í º¼ ¼ö ÀÖ´Ù.
a = 117ÀÏ ¶§ a << 2 ÀÇ °á°ú
117 => 0000 0000 0111 0101
----------------------------
00 0000 0001 1101 0100 <= 00
¶ÇÇÑ ºñÆ® ¿¬»êÀÚ´Â µîÈ£¿Í °áÇÕÇؼ ġȯ ¿¬»êÀÚ¸¦ ÀÌ·ê ¼ö ÀÖ´Ù.
a = a >> b; ´Â a >>= b, a = a& b; ´Â a &= b¿Í °°´Ù.
Ãʺ¸ÀÚµéÀº ºñÆ® ¿¬»êÀÚµéÀÇ ¾²ÀÓ¿¡ ´ëÇØ ÀDZ¸½ÉÀ» °¡ÁúÁö ¸ð¸£³ª, °í±ÞÇÁ·Î±×·¥¿¡¼´Â ¾ÆÁÖ ¿ä±äÇÏ°Ô ¾²ÀÌ°í ÀÖ´Ù. ºñÆ® ¿¬»êÀÌ CÀÇ Àú±Þ¾ð¾îÀÇƯ¼ºÀ» ´ëº¯Çϴ Ư¡ ÁÖÀÇ Çϳª¶ó°í º¼ ¼ö ÀÖ´Ù. ƯÈ÷, ÇÑ±Û Ãâ·Â¿¡ ÀÖ¾î¼ÀÇ ºñÆ® ¿¬»êÀÇ ¾²ÀÓÀº ÇʼöÀûÀÌ´Ù. ¿©·¯ºÐµéÀÌ °í±Þ °úÁ¤À¸·Î ¿Ã¶ó°¡¸éÀÌ·¯ÇÑ À̾߱âµéÀÌ ¸ðµÎ ÀÌÇØ°¡ °¥ °ÍÀÌ´Ù. Áö±Ý ¿ì¸®´Â ÀÌ·¯ÇÑ ºñÆ® ¿¬»êÀÇ ±â´É¿¡ ´ëÇؼ¸¸ ¾Ë°í ÀÖÀÚ.
11. ¼øÂ÷ ¿¬»êÀÚ( , ) - comma ¿¬»êÀÚ
¿©·¯°³ÀÇ ½ÄÀ» ÇÑ ÁÙ¿¡ ³ª¿ÇÏ´Â ±â´ÉÀ» °¡Áø ¼øÂ÷ ¿¬»êÀÚ´Â ¿ì¼± ¼øÀ§°¡°¡Àå ³·À¸¸ç, Á°áÇÕ¼ºÀ» °¡Áö¸ç, ÄÄ¸Ó ¿ìÃø¿¡ ÀÖ´Â ½ÄÀ» Æò°¡ÇÏ¿© ¾òÀº°ªÀ» °á°ú·Î ÇÑ´Ù. (¸®½ºÆ®2ÀÇ 5Çà¿¡ ¼øÂ÷ ¿¬»êÀÚ°¡ ¾²¿´´Ù)
x = (y = 1, y++); ´Â x = 2, y = 2 °¡ µÈ´Ù.
x = (y = 1, ++y); ´Â y = 1, x = ++yÀ̹ǷΠx = 2, y = 2°¡ µÈ´Ù.
x = (y = 1, y+1); Àº y = 1, x = y+1À̹ǷΠx = 2, y = 1ÀÌ µÈ´Ù.
x = (y = 1, z = 2); ´Â y = 1, z = 2, x = 2°¡ µÈ´Ù.
x = (y = 3, y+2); ´Â y = 3, x = 5°¡ µÈ´Ù.
<¿¹Á¦3> ¾Æ·¡ ÇÁ·Î±×·¥¿¡¼ x¿Í yÀÇ °ªÀº ¾î¶² °á°ú°¡ ³ª¿À°Ú´Â°¡?
<¸®½ºÆ®3> #include <stdio.h>
main()
{
int i,j;
i = (j = 15, j+4);
printf("i = %d, j = %d\n",i,j);
}
°á°ú´Â Á÷Á¢ ½ÇÇàÇØ º¸½Ã±â ¹Ù¶õ´Ù.
12. Á¤¼öÇü µ¥ÀÌÅÍÀÇ ÀÔ·Â
¿©±â¿¡¼´Â Ç¥ÁØ ÀÔ·Â ÀåÄ¡ÀÎ Å°º¸µå·Î µ¥ÀÌÅ͸¦ º¯¼ö¿¡ ÀԷ½ÃÅ°±â À§ÇÏ¿© ÄÜ¼Ö ÀÔ·Â ÇÔ¼ö ÁßÀÇ ÇϳªÀÎ scanf( )ÇÔ¼ö¸¦ »ç¿ëÇϱâ·Î ÇÑ´Ù.
1) scanf( )ÇÔ¼öÀÇ ÀÏ¹Ý Çü½Ä
scanf("Çü½Ä ÁöÁ¤ ¹®ÀÚ¿", ÀԷº¯¼ö,ÀԷº¯¼ö ); |
◈Çü½Ä ÁöÁ¤ ¹®ÀÚ¿À̶õ Å°º¸µå·Î ÀÔ·ÂÇÒ µ¥ÀÌÅ͸¦ ¾î¶°ÇÑ Çü½ÄÀ¸·Î ÀÔ·ÂÇÒ °ÍÀÎ °¡¸¦ ÁöÁ¤ÇÒ ¶§ »ç¿ëÇÏ´Â °ÍÀ¸·Î ´ÙÀ½°ú °°Àº °ÍµéÀÌ »ç¿ëµÈ´Ù.
%d 10Áø¼ö(decimal)ÀÇ Á¤¼ö·Î º¯È¯ÇÏ¿© ÀÔ·ÂÇÒ¶§ »ç¿ëÇÑ´Ù.
%o 8Áø¼ö(octal)ÀÇ Á¤¼ö·Î º¯È¯ÇÏ¿© ÀÔ·ÂÇÒ¶§ »ç¿ëÇÑ´Ù.
%x 16Áø¼ö(hexdecimal)ÀÇ Á¤¼ö·Î º¯È¯ÇÏ¿© ÀÔ·ÂÇÒ¶§ »ç¿ëÇÑ´Ù.
2) ÇÑ°³ÀÇ 10Áø Á¤¼ö ÀÔ·Â
ÇÑ °³ÀÇ 10Áø Á¤¼ö µ¥ÀÌÅ͸¦ ÀÔ·ÂÇÒ ¶§¿¡´Â ´ÙÀ½°ú °°Àº Çü½ÄÀ¸·Î ÀÔ·ÂÇÑ´Ù.
scanf("%d", &a);
↓ ↴ º¯¼ö ÁöÁ¤ ( &:¹øÁö ¿¬»êÀÚ, a:Á¤¼öÇü º¯¼ö)
Çü½Ä ÁöÁ¤ ¹®ÀÚ¿
㽬 %d 10Áø¼öÀÇ Á¤¼ö ÇüÅ·ΠÀÔ·ÂÇÒ ¶§ »ç¿ëÇÏ´Â Çü½Ä ÁöÁ¤ ¹®ÀÚ¿ÀÌ´Ù.
&a º¯¼ö ÁöÁ¤½Ã¿¡ »ç¿ëµÇ´Â &´Â º¯¼ö aÀÇ ¹øÁö¸¦ ³ªÅ¸³»´Â ¹øÁö ¿¬»êÀÚÀÌ´Ù. ¹øÁö ¿¬»êÀÚ¿¡ ´ëÇÑ ¼³¸íÀº Á¦¥µÀåÀÇ 'Æ÷ÀÎÅÍ'¿¡¼ »ó¼¼È÷ Çϱâ·Î ÇÏ°í ¿©±â ¿¡¼´Â ´ÜÁö ±â¾ï½Ãų º¯¼ö ¾Õ¿¡ &±âÈ£¸¦ ºÙÀδٴ »ç½Ç¸¸ ±â¾ïÇϱ⠹ٶõ´Ù.
㽬 ÀԷ¹æ¹ý scanf( )ÇÔ¼ö¿¡ ÀÇÇÏ¿© µ¥ÀÌÅ͸¦ ÀÔ·ÂÇÒ ¶§¿¡´Â Å°º¸µå·Î Á¤¼öÇü µ¥ÀÌ Å͸¦ ÀÔ·ÂÇÑ ÈÄ [Enter]Å°¸¦ ´©¸£¸é µÈ´Ù.
¡º ½Ç½À c2-06 ¡»¿¹Á¦ ÇÁ·Î±×·¥
/*-------------------------------------------------------------------------------------------------
* c2-06.c : Á¤¼öµ¥ÀÌÅÍÀÇ ÀÔ·Â
*-----------------------------------------------------------------------------------------------*/
main( )
{
int a, b;
printf("a=? ");
scanf("%d",&a);
printf("b=? ");
scanf("%d",&b);
printf("\n");
printf("%d + %d = %d \n",a,b,a+b);
printf("%d - %d = %d \n",a,b,a-b);
printf("%d * %d = %d \n",a,b,a*b);
printf("%d / %d = %d \n",a,b,a/b);
}
¢Ñ ½ÇÇà °á°ú
c>c2-06
a=? 30 㟺 30À» ÀÔ·ÂÇÑ ÈÄ [Enter]¸¦ ´©¸§
b=? 10 㟺
30 + 10 = 40
30 - 10 = 20
30 * 10 = 300
30 / 10 = 3
3) µÎ °³ ÀÌ»óÀÇ 10Áø Á¤¼ö ÀÔ·Â
µÎ °³ ÀÌ»óÀÇ 10Áø Á¤¼ö¸¦ ÀÔ·ÂÇÏ·Á¸é ´ÙÀ½°ú °°ÀÌ ÀÔ·ÂÇÒ °³¼ö ¸¸ÅÀÇ Çü½Ä ÁöÁ¤ ¹®ÀÚ¿°ú º¯¼ö¸¦ ÁöÁ¤ÇÏ¸é µÈ´Ù.
scanf("%d %d %d", &a,&b,&c);
↓ ↁº¯¼ö ÁöÁ¤
Çü½Ä ÁöÁ¤ ¹®ÀÚ¿
À§¿Í °°ÀÌ Çü½Ä ÁöÁ¤ ¹®ÀÚ¿ »çÀ̸¦ °ø¹éÀ¸·Î ±¸ºÐÇÏ¸é µ¥ÀÌÅÍ ÀԷ½ÿ¡ ÀÔ·ÂÇÒ µ¥ÀÌÅÍ µéÀ» °ø¹éÀ¸·Î ±¸ºÐÇÏ¿© ÀÔ·ÂÇÏ¸é µÈ´Ù. ¸¸ÀÏ ÀÔ·Â µ¥ÀÌÅ͸¦ ÄÞ¸¶(,)·Î ±¸ºÐÇÏ°í ½ÍÀ¸¸é ´ÙÀ½°ú °°ÀÌ °ø¹é ´ë½Å¿¡ ÄÞ¸¶¸¦ »ç¿ëÇÏ¸é µÈ´Ù.
scanf("%d,%d,%d",&a,&b,&c);
¡º½Ç½À 2-07¡»¿¹Á¦ ÇÁ·Î±×·¥
/*-------------------------------------------------------------------------------------------
* c2-07.c : µÎ °³ÀÌ»óÀÇ 10Áø Á¤¼ö ÀÔ·Â
*------------------------------------------------------------------------------------------*/
main( )
{
int a,b,c;
printf("a b c = ? ");
scanf("%d %d %d",&a,&b,&c); /*Âü°í¨ç*/
printf("\n");
printf("%d + %d + %d = %d \n",a,b,c,a+b+c);
}
¢Ñ ½ÇÇà °á°ú 1 ¢Ñ ½ÇÇà °á°ú 2
c>c2-07 c>c2-07
a b c = ? 10 20 30㟺 a b c = ? 10 㟺
10 + 20 + 30 = 60 20㟺
30㟺
10 + 20 + 30 = 60
㽬Âü°í¨ç
¾Æ·¡¿Í °°ÀÌ printf( )ÇÔ¼ö¿Í scanf( )ÇÔ¼ö¸¦ »ç¿ëÇϸé ÇÁ·Î±×·¥ ½ÇÇà½Ã ¾Æ·¡ÀÇ ½ÇÇà °á°ú¿Í °°ÀÌ µ¥ÀÌÅ͸¦ ÄÞ¸¶·Î ±¸ºÐÇÏ¿© ÀÔ·ÂÇÏ¿©¾ß ÇÑ´Ù.
printf("a, b, c = ? ");
scanf("%d, %d, %d", &a, &b, &c);
¢Ñ ½ÇÇà °á°ú
c>c2-07
a, b, c = ? 10,20,30㟺
10 + 20 + 30 = 60
µ¥ÀÌÅÍÀÇ ±¸ºÐ ±âÈ£´Â °ø¹é°ú ÄÞ¸¶(,)¸¦ »ç¿ëÇÒ ¼ö ÀÖ´Ù.
4) 8Áø¼ö¿Í 16Áø¼öÀÇ ÀÔ·Â
8Áø¼öÀÇ Á¤¼ö ÇüÅ·Πµ¥ÀÌÅ͸¦ º¯¼ö¿¡ ÀÔ·ÂÇÒ ¶§¿¡´Â Çü½Ä ÁöÁ¤ ¹®ÀÚ¿À» %o·Î »ç¿ëÇÏ¿©¾ß ÇÏ°í 16Áø¼öÀÇ Á¤¼ö ÇüÅ·Πµ¥ÀÌÅ͸¦ ÀÔ·ÂÇÒ ¶§¿¡´Â Çü½Ä ÁöÁ¤ ¹®ÀÚ¿À» %x³ª %X¸¦ »ç¿ëÇÏ¿©¾ß ÇÑ´Ù. ¾Æ·¡¿¡ ±× »ç¿ë¿¹¸¦ ³ªÅ¸³»¾ú´Ù.
¡ºº¸±â¡»8Áø¼ö·Î ÀÔ·ÂÇÒ ¶§ÀÇ Çü½Ä
scanf("%o", &a);
↓ ↴ º¯¼ö ÁöÁ¤ ( &:¹øÁö ¿¬»êÀÚ, a:Á¤¼öÇü º¯¼ö)
8Áø¼ö ÇüÅ·ΠÀÔ·ÂÇÒ °ÍÀ» ÁöÁ¤ÇÏ´Â Çü½Ä ÁöÁ¤ ¹®ÀÚ¿
¡ºº¸±â¡»16Áø¼ö·Î ÀÔ·ÂÇÒ ¶§ÀÇ Çü½Ä
scanf("%x", &a);
↓ ↴ º¯¼ö ÁöÁ¤ ( &:¹øÁö ¿¬»êÀÚ, a:Á¤¼öÇü º¯¼ö)
16Áø¼ö ÇüÅ·ΠÀÔ·ÂÇÒ °ÍÀ» ÁöÁ¤ÇÏ´Â Çü½Ä ÁöÁ¤ ¹®ÀÚ¿
¡º½Ç½À 2-08¡»¿¹Á¦ ÇÁ·Î±×·¥
/*----------------------------------------------------------------------------------------------
* c2-08.c : 8Áø¼ö¿Í 16Áø¼öÀÇ ÀÔ·Â
*---------------------------------------------------------------------------------------------*/
main( )
{
int a, b, c;
printf("a = ? ");
scanf("%o",&a); /* 8Áø¼öÀÇ Á¤¼ö·Î º¯È¯ÇÏ¿© ÀÔ·Â */
printf("b = ? ");
scanf("%d", &b); /*10Áø¼öÀÇ Á¤¼ö·Î º¯È¯ÇÏ¿© ÀÔ·Â */
printf("c = ? ");
scanf("%x", &c); /*16Áø¼öÀÇ Á¤¼ö·Î º¯È¯ÇÏ¿© ÀÔ·Â */
printf("\na = %d \n", a); /*º¯¼öÀÇ °ªÀ» 10Áø¼ö·Î Ãâ·Â */
printf("b = %d \n",b);
printf("c = %d \n",c);
}
¢Ñ ½ÇÇà °á°ú 1 ¢Ñ ½ÇÇà °á°ú 2
c>c2-08 c>c2-08
a = ? 100 a = ? 11
b = ? 100 b = ? 11
c = ? 100 c = ? af
a = 64 a = 9
b = 100 b = 11
c = 256 c = 175
¡¶¿¬½À 13¡·À§ ÇÁ·Î±×·¥ÀÇ ½ÇÇà °á°ú¸¦ ¼³¸íÇÏ¿©¶ó.
¡¶¿¬½À 14¡·3°ú¸ñ Á¡¼ö¸¦ Å°º¸µå·Î ÀÔ·ÂÇϵÇ, ÄÞ¸¶·Î µ¥ÀÌÅ͸¦ ±¸ºÐÇÏ¿© ÀÔ·ÂÇÑ ÈÄ ±× ÇÕ °ú Æò±ÕÀ» ±¸ÇÏ¿© Ãâ·ÂÇÏ´Â ÇÁ·Î±×·¥À» ÀÛ¼ºÇÏ¿©¶ó.
¢Ñ ½ÇÇà °á°ú
±¹¾î,¼öÇÐ,¿µ¾î = 90,80,100
±¹¾î = 90
¼öÇÐ = 80
¿µ¾î = 100
ÃÑÁ¡ = 270
Æò±Õ = 90
¡¶¿¬½À 15¡·´ÙÀ½ ÇÁ·Î±×·¥ÀÇ ½ÇÇà °á°ú¸¦ »ý°¢ÇØ º¸°í ½ÇÁ¦·Î ó¸®ÇÏ¿© ±× °á°ú¸¦ ¾Ë¾Æº¸ ÀÚ.
main( )
{
unsigned int a, b, c;
a = -1;
b = -2;
c = -32768;
printf("a = %u \n",a);
printf("b = %u \n",b);
printf("c = %u \n",c);
}
㽬unsigned intÇü µ¥ÀÌÅ͸¦ 10Áø¼ö ÇüÅ·ΠÃâ·ÂÇϸé Çü½Ä ÁöÁ¤ ¹®ÀÚ¿Àº %u¸¦ »ç¿ëÇÑ´Ù.
㽬C¾ð¾î¿¡¼´Â ¸¸ÀÏ Çã¿ë ¹üÀ§¸¦ ³Ñ´Â ¼öÄ¡¸¦ »ç¿ëÇÏ¸é ¹ü¶÷(overflow)ÀÌ ¹ß»ýÇÏ¿© ¾û¶× ÇÑ °á°ú¸¦ ¾ò°Ô µÊ¿¡ À¯ÀÇÇØ¾ß ÇÑ´Ù. ´Ù¸¥ ¾ð¾î¿¡¼¿Í´Â ´Þ¸® overflow°¡ ¹ß»ýÇÏ¿©µµ ¿¡·¯·Î 󸮵ÇÁö ¾ÊÀ¸¹Ç·Î ¿¡·¯ ¸Þ½ÃÁö ¿ª½Ã ³ªÅ¸³ªÁö ¾Ê´Â´Ù.
¡º½Ç½À 2-09¡»¿¹Á¦ ÇÁ·Î±×·¥
/*----------------------------------------------------------------------------------------------
* c2-09.c : overflow¹ß»ý½ÃÀÇ Ãâ·Â°á°ú
*---------------------------------------------------------------------------------------------*/
main( )
{
int i=32767;
printf("%d\n",i);
printf("%d\n",i+1); /* overflow¹ß»ý */
printf("%d\n",i+2); /* overflow¹ß»ý */
}
¢Ñ ½ÇÇà °á°ú
c>c2-09
32767
-32768
-32767
¡¶¿¬½À 16¡·À§ ÇÁ·Î±×·¥ÀÇ ½ÇÇà °á°ú¸¦ ¼³¸íÇÏ¿©¶ó.
5) ÀÔ·Â ÇÔ¼ö
´ÙÀ½Àº CÀÇ Ç¥ÁØ ÀÔ·Â ÇÔ¼öµé¿¡ °üÇÏ¿© ¾Ë¾Æº¸ÀÚ.
⼑ getch( )
´ÜÀϹ®ÀÚ¸¦ ÀԷ¹ÞÀ¸¸ç, ÀÔ·ÂÇÏ´Â ¹®Àڴ ȸ鿡 Ç¥½ÃµÇÁö ¾Ê´Â´Ù(No Echo)
⼑ getchar( )
´ÜÀϹ®ÀÚ¸¦ ÀԷ¹ÞÀ¸¸ç, ÀÔ·ÂÇÏ´Â ¹®Àڴ ȸ鿡 Ç¥½ÃµÈ´Ù(Echo Back) <Enter>¸¦ ´©¸£¸é ÀÔ·ÂÀÌ Á¾·áµÇ¸ç ¿©·¯¹®ÀÚ¸¦ ÀÔ·ÂÇصµ óÀ½ÀÇ ÇÑ ¹® ÀÚ¸¸À» À¯È¿ÇÏ°Ô ¹Þ¾Æ µéÀδÙ.
⼑ gets( )
<Enter>¸¦ ´©¸¦ ¶§±îÁö °ø¹éÀ» Æ÷ÇÔÇÑ ¸ðµç ¹®ÀÚ¿À» ÀԷ¹޴´Ù.
13. Á¤¼öÇü µ¥ÀÌÅÍÀÇ Ãâ·Â
ÀÌ¹Ì printf( )ÇÔ¼ö´Â ÀÚÁÖ »ç¿ëÇÏ¿© ÀϹÝÀûÀÎ »ç¿ë¹ýÀº ÀÌ¹Ì Àß ¾Ë°í ÀÖ´Ù.
¿©±â¿¡¼´Â Á¤¼öÇü(intÇü) µ¥ÀÌÅ͸¦ 8Áø¼ö ÇüÅÂ¿Í 16Áø¼ö ÇüÅÂÀÇ Á¤¼ö·Î Ãâ·ÂÇÏ´Â ¹æ¹ý°ú Ãâ·ÂÇÒ ÀÚ¸®¼ö¸¦ ÁöÁ¤ÇÏ¿© º¸±â ÁÁ°Ô Ãâ·ÂÇÏ´Â ¹æ¹ý¿¡ ´ëÇÏ¿© ¾Ë¾Æ º¸±â·Î ÇÑ´Ù.
printf( )ÇÔ¼öÀÇ ÀÏ¹Ý Çü½ÄÀº ´ÙÀ½°ú °°´Ù.
<ÀϹÝÇü½Ä>
printf("Çü½Ä ÁöÁ¤ ¹®ÀÚ¿", Ãâ·Â µ¥ÀÌÅÍ); |
㽬 printf( )ÇÔ¼ö¿¡¼ »ç¿ëµÇ´Â Çü½Ä ÁöÁ¤ ¹®ÀÚ¿À̶õ µ¥ÀÌÅ͸¦ ¾î¶°ÇÑ Çü½ÄÀ¸·Î Ãâ·ÂÇÒ °ÍÀΰ¡¸¦ ÁöÁ¤ÇÒ ¶§ »ç¿ëÇÏ´Â °ÍÀ¸·Î ´ÙÀ½°ú °°Àº °ÍµéÀ» »ç¿ëÇÑ´Ù.
%d Ãâ·ÂÇÒ µ¥ÀÌÅ͸¦ 10Áø¼ö·Î º¯È¯ÇÏ¿© Ãâ·ÂÇÒ¶§ »ç¿ëÇÑ´Ù.
%o Ãâ·ÂÇÒ µ¥ÀÌÅ͸¦ 8Áø¼ö·Î º¯È¯ÇÏ¿© Ãâ·ÂÇÒ¶§ »ç¿ëÇÑ´Ù.
%x Ãâ·ÂÇÒ µ¥ÀÌÅ͸¦ 16Áø¼ö·Î º¯È¯ÇÏ¿© Ãâ·ÂÇÒ¶§ »ç¿ëÇÑ´Ù.
%X Ãâ·ÂÇÒ µ¥ÀÌÅ͸¦ 16Áø¼ö·Î º¯È¯ÇÏ¿© Ãâ·ÂÇÒ¶§ »ç¿ëÇÑ´Ù.
%x¸¦ »ç¿ëÇϸé a~f±îÁöÀÇ ¼ö°¡ ¼Ò¹®ÀÚ·Î Ãâ·ÂµÇ°í %X¸¦ »ç¿ëÇÏ¸é ´ë¹®ÀÚ·Î Ãâ·ÂµÈ´Ù.
¡º½Ç½À 2-10¡»¿¹Á¦ ÇÁ·Î±×·¥
/*----------------------------------------------------------------------------------------------
* c2-10.c : 10Áø¼ö¸¦ 8Áø¼ö¿Í 16Áø¼ö·Î Ãâ·Â
*---------------------------------------------------------------------------------------------*/
main( ) /*Á¤¼öÇü µ¥ÀÌÅÍÀÇ Ãâ·Â ¿¹ */
{
printf("%d \n", 1023); /*10Áø¼ö·Î Ãâ·Â */
printf("%o \n", 1023); /* 8Áø¼ö·Î Ãâ·Â */
printf("%x \n", 1023); /*16Áø¼ö·Î Ãâ·Â */
printf("%X \n", 1023); /*16Áø¼ö·Î Ãâ·Â */
}
¢Ñ ½ÇÇà °á°ú
c>c2-10
1023
1777
3ff
3FF
Á¤¼öÇü µ¥ÀÌÅ͸¦ Ãâ·ÂÇÒ ¶§ º¸±â ÁÁ°Ô Ãâ·ÂÇϱâ À§ÇÏ¿© ÀÚ¸®¼ö¸¦ ÁöÁ¤ÇÏ´Â ¹æ¹ýÀ» ½Ç½ÀÀ» ÅëÇÏ¿© ¾Ë¾Æ º¸±â·Î ÇÏÀÚ.
¡º½Ç½À 2-11¡»Ãâ·Â µ¥ÀÌÅÍÀÇ ÀÚ¸®¼ö ÁöÁ¤
/*----------------------------------------------------------------------------------------------
* c2-11.c : Ãâ·Â µ¥ÀÌÅÍÀÇ ÀÚ¸®¼ö ÁöÁ¤
*---------------------------------------------------------------------------------------------*/
main( )
{
printf("/%d/\n", 123); /*ùĺÎÅÍ 123Ãâ·Â */
printf("/%10d/\n", 123); /*¿À¸¥ÂÊÀ» ±âÁØÀ¸·Î 10Ä Ãâ·Â */
printf("/%-10d/\n", 123); /*¿ÞÂʱâÁØÀ¸·Î 10Ä Ãâ·Â */
}
¢Ñ ½ÇÇà °á°ú
c>c2-11
/123/
/ 123/
/123 /
㽬 Âü°í : À§¿¡¼ »ç¿ëµÈ Çü½Ä ÁöÁ¤ ¹®ÀÚ¿ÀÇ Àǹ̴ ´ÙÀ½°ú °°´Ù.
%d Ãâ·ÂÇÒ ¼ýÀÚÀÇ ÀÚ¸®¼ö¸¦ °í·ÁÇÏÁö ¾Ê°í ùĺÎÅÍ Ãâ·ÂÇÒ ¼ýÀÚÀÇ ÀÚ¸®¼ö ¸¸ Å Ãâ·ÂÇÒ¶§ »ç¿ëÇÑ´Ù.
%10d Ãâ·ÂÇÒ ¹üÀ§¸¦ 10ÀÚ¸®·Î ÀâÀº ÈÄ ¿À¸¥ÂʺÎÅÍ Ã¤¿ì¸é¼ Ãâ·ÂÇÒ ¶§ »ç¿ëÇÑ ´Ù. ´Ù½Ã ¸»Çؼ Ãâ·ÂÇÒ ÃÑ ÀÚ¸®¼ö¸¦ ÁöÁ¤ÇÑ ÈÄ ¸Ç ¿ìÃøÀÚ¸®(1ÀÚ¸®)¸¦ ±â ÁØÀ¸·Î ÇÏ¿© Ãâ·ÂÇÒ ¶§ »ç¿ëÇÑ´Ù.
%10d Ãâ·ÂÇÒ ¹üÀ§¸¦ 10ÀÚ¸®·Î ÀâÀº ÈÄ ¿ÞÂʺÎÅÍ Ã¤¿ì¸é¼ Ãâ·ÂÇÒ ¶§ »ç¿ëÇÑ ´Ù. ´Ù½Ã ¸»Çؼ Ãâ·ÂÇÒ ÃÑ ÀÚ¸®¼ö¸¦ ÁöÁ¤ÇÑ ÈÄ ¸Ç ¿ÞÂʸ¦ ±âÁØÀ¸·Î ÇÏ¿© Ãâ·ÂÇÒ ¶§ »ç¿ëÇÑ´Ù.
<Ç¥1> Æ÷¸Ë ÄÚµå a=1234, b=3.14159, c='A', s="ABCD" (=:°ø¹é)
+-------------+--------+------------------------------------+
| code |Ãâ·ÂÇüÅÂ| ¼³ ¸í |
+-------------+--------+------------------------------------+
|("%d",a) |1234 | Á¤¼öÀÇ Ãâ·Â |
|("%8d",a) |====1234| ¼öÄ¡¸¦ ¿ìÃøÀ» ±âÁØÀ¸·Î 8ÀÚ¸® Ãâ·Â|
|("%-8d",a) |1234====| ÁÂÃøÀ» ±âÁØÀ¸·Î 8ÀÚ¸® Ãâ·Â |
|("%+8d",a) |===+1234| ¼öÄ¡¾Õ¿¡ ºÎÈ£ |
|("%08d",a) |00001234| ¼öÄ¡¾ÕÀÇ °ø¹éÀ» 0À¸·Î ä¿ò |
|("%+08d",a) |+0001234| ºÎÈ£ºÙÀÌ°í °ø¹éÀ» 0À¸·Î ä¿ò |
|("%f",b) |3.14159 | ½Ç¼öÀÇ Ãâ·Â |
|("%8.3f",b) |===3.142| Àüü 8ÀÚ¸®, ¼Ò¼ö 3ÀÚ¸® Ãâ·Â |
|("%-8.3f",b) |3.142===| ÁÂÃø±âÁØ (¼Ò¼öÀÌÇÏ ¹Ý¿Ã¸²) |
|("%+8.3f",b) |==+3.142| ºÎÈ£¸¦ ºÙ¿©¼ Ãâ·Â |
|("%08.3f",b) |0003.142| ¾ÕÀÇ °ø¹éÀ» 0À¸·Î ä¿ò |
|("%+08.3f",b)|+003.142| ºÎÈ£¸¦ ºÙÀÌ°í °ø¹éÀ» 0À¸·Î ä¿ò |
|("%c",c) |A | ¹®ÀÚ Ãâ·Â |
|("%8c",c) |=======A| ¿ìÃøÀ» ±âÁØÀ¸·Î |
|("%-8c",c) |A=======| ÁÂÃøÀ» ±âÁØÀ¸·Î |
|("%s",s) |ABCD | ¹®ÀÚ¿ÀÇ Ãâ·Â |
|("%8s",s) |====ABCD| ¿ìÃøÀ» ±âÁØÀ¸·Î |
|("%-8s",s) |ABCD====| ÁÂÃøÀ» ±âÁØÀ¸·Î |
+-------------+--------+------------------------------------+
⼀ Ãâ·ÂÇÏ·Á´Â À§Ä¡, ¹®ÀÚÀÇ ±æÀÌ°¡ Æ÷¸ËÄڵ庸´Ù Å©¸é Æ÷¸ËÄÚµå´Â ¹«½ÃµÊ
<Ç¥2> Çü º¯È¯ ±âÈ£
+----+---------------+----------------------------------------------+
|±âÈ£| ÀμöÀÇ ¼öÇü | º¯È¯ÀÇ ³»¿ë |
+----+---------------+----------------------------------------------+
| %d | Á¤ ¼ö Çü | Àμö¸¦ ºÎÈ£ÀÖ´Â 10Áø¼ö·Î Ãâ·ÂÇÑ´Ù |
| %u | Á¤ ¼ö Çü | Àμö¸¦ ºÎÈ£¾ø´Â 10Áø¼ö·Î Ãâ·ÂÇÑ´Ù |
|%ld | ¹èÁ¤µµ Á¤¼öÇü | Àμö¸¦ ºÎÈ£ÀÖ´Â ¹èÁ¤µµ Á¤¼ö·Î Ãâ·ÂÇÑ´Ù |
|%lu | ¹èÁ¤µµ Á¤¼öÇü | Àμö¸¦ ºÎÈ£¾ø´Â ¹èÁ¤µµ Á¤¼ö·Î Ãâ·ÂÇÑ´Ù |
| %o | Á¤ ¼ö Çü | Àμö¸¦ ºÎÈ£¾ø´Â 8Áø¼ö·Î Ãâ·ÂÇÑ´Ù |
| %x | Á¤ ¼ö Çü | Àμö¸¦ ºÎÈ£¾ø´Â 16Áø¼ö·Î Ãâ·ÂÇÑ´Ù(¼Ò¹®ÀÚ·Î) |
| %X | Á¤ ¼ö Çü | Àμö¸¦ ºÎÈ£¾ø´Â 16Áø¼ö·Î Ãâ·ÂÇÑ´Ù(´ë¹®ÀÚ·Î) |
| %c |¹®ÀÚ(orÁ¤¼öÇü) | Àμö¸¦ ´ÜÀϹ®ÀÚ·Î Ãâ·Â |
| %s |¹®ÀÚ¿ Æ÷ÀÎÅÍ | \0¾Õ±îÁöÀÇ ¹®ÀÚ¿ÀÌ´ø°¡ ÁöÁ¤µÈ ±æÀ̸¸Å Ãâ·Â |
| %f |ºÎµ¿¼Ò¼öÁ¡ ½Ç¼ö| °íÁ¤ ¼Ò¼ýÁ¡ Çü½ÄÀ¸·Î Ãâ·Â ex: 35.45600 |
| %e |ºÎµ¿¼Ò¼öÁ¡ ½Ç¼ö| ºÎµ¿ ¼Ò¼ýÁ¡ Çü½ÄÀ¸·Î Ãâ·Â ex: 3.54560e+01 |
| %E | | 3.54560E+01 |
| %g |ºÎµ¿¼Ò¼öÁ¡ ½Ç¼ö| °íÁ¤,ºÎµ¿ Áß °£´ÜÇÑ Çü½ÄÀ¸·Î Ãâ·Â(e) |
| %G | | (E) |
+----+---------------+----------------------------------------------+
1) %g, %G ¿É¼ÇÀÌ ¾ø´Ù.(»ý°¢ÇØ º¸¸é ´ç¿¬ÇÑ °ÍÀÌ´Ù)
2) %f¿Í %e´Â °°´Ù.(µÑ ´Ù ºÎÈ£,¼Ò¼öÁ¡,Áö¼öºÎÀÇ À¯¹«¿¡ °ü°è¾øÀÌ ¹Þ¾Æ
µéÀδÙ.
<¿¹Á¦4> ´ÙÀ½ ÇÁ·Î±×·¥ÀÇ ½ÇÇà°á°ú¸¦ Àû¾î º¸¾Æ¶ó.
/* Ãâ·Â ÇüÅ ½Ç½À - ¿©·¯°¡Áö ¼ö¸¦ ÀÔ·ÂÇØ º¸°í Ãâ·ÂÇü */
/* Ÿ¦ ¿¹»óÇÏ´Â ¿¬½ÀÀ» ÇÑ´Ù */
#include <stdio.h>
main()
{
float a;
int b;
printf("\nÀÓÀÇÀÇ ¼ýÀÚ(½Ç¼ö) ÀÔ·Â:");
scanf("%f",&a); /* 874563À» ÀÔ·ÂÇغ¸°í, */
/* 0.04568À» ÀÔ·ÂÇغ¸°í,*/
/* 756.355¸¦ ÀÔ·ÂÇغ¸¶ó */
puts("´ç½ÅÀÌ ÀÔ·ÂÇÑ ¼öÄ¡¸¦");
printf("°íÁ¤¼Ò¼öÁ¡Çü½ÄÀ¸·Î Ãâ·ÂÇϸé :%f\n",a);
printf("ºÎµ¿¼Ò¼öÁ¡Çü½ÄÀ¸·Î Ãâ·ÂÇϸé :%E\n",a);
printf("\nÀÓÀÇÀÇ ¾ç¼ö¸¦ ÀÔ·ÂÇ϶ó :");
scanf("%d",&b); /* 3654¸¦ ÀÔ·ÂÇØ º»´Ù */
printf("10Áø¼ö==>8Áø¼ö==>16Áø¼ö\n");
printf("%d ==> %o ==> %X\n",b,b,b);
printf("\n ³¡³¾·Á¸é ¾Æ¹«Å°³ª ´©¸£½Ã¿À.");
getch();
}
14. cast ¿¬»êÀÚ - (Çü) ¿¬»êÀÚ
Çüº¯È¯ ¿¬»êÀÚ´Â ¿øÇÏ´Â µ¥ÀÌÅÍÀÇ ÇüÀ» °ýÈ£·Î ¹¾î ¿¬»êÀÚ ¾Õ¿¡ ÁöÁ¤ÇصÒÀ¸·Î½á µ¥ÀÌÅÍ ÇüÀ» º¯È¯½ÃÅ°´Â ¿ªÇÒÀ» ÇÑ´Ù.
<¿¹Á¦5> cast¿¬»êÀÇ º¸±â - ½ÇÇà°á°ú¸¦ ¿¹ÃøÇØ º¸¶ó.
<¸®½ºÆ®5> 1: #include <stdio.h>
2: main()
3: {
4: char ch;
5: int i;
6: float fl;
7:
8: fl = i = ch = 'A'
9: printf("ch = %c,i = %d,fl = %2.2f\n",ch,i,fl);
10:
11: ch++;
12: i = fl + 2 * ch;
13: fl = 2.0 * ch + 1;
14: printf("ch = %c, i = %d, fl = %2.2f\n",ch,i,fl);
15:
16: ch = 2.0e30;
17: printf("Now ch = %c\n",ch);
18: }
<¼³¸í> 8,9Çà: ¹®ÀÚ 'A'´Â º¯¼ö ch¿¡ ¹®ÀÚ·Î ÁöÁ¤µÊ. Á¤¼öº¯¼ö i´Â 'A' ¸¦ Á¤¼ö·Î º¯È¯ÇÑ 65¸¦ ¹ÞÀ½. flÀº 65¸¦ 65.00À¸·Î º¯È¯ÇÑ °ªÀ» ¹ÞÀ½. 11,14Çà: ¹®ÀÚº¯¼ö 'A'¸¦ Á¤¼ö 65·Î º¯È¯ÇÏ°í ¿©±â¿¡ 1À» ´õÇÔ. ±×¸®°í Á¤¼ö 66À» ¹®ÀÚ B·Î º¯È¯ÇÏ¿© ch¿¡ ÀúÀåÇÔ 12,14Çà: chÀÇ °ªÀ» Á¤¼ö·Î º¯È¯ÇÑ ´ÙÀ½ 2¿Í °öÇÔ. °á°ú(132)¸¦ ½Ç¼ö·Î º¯È¯ÇØ fl°ú ´õÇÔ. °á°ú 197.00Àº Á¤¼ö·Î ¹Ù²î¾î i¿¡ ÀúÀåµÊ. 13,14Çà: chÀÇ °ª 'B'¸¦ ½Ç¼ö·Î º¯È¯ÇØ 2.0°ú °öÇÔ. iÀÇ °ª(197)À» ½Ç¼ö·Î º¯È¯ÇØ ´õÇÑ´Ù. °á°ú(329.00)Àº fl¿¡ ÀúÀåµÊ. 16,17Çà: ch¸¦ ¸Å¿ì Å« ¼ö·Î ġȯÇϹǷΠ¿¹±âÄ¡ ¾ÊÀº °á°ú°¡ ÀϾ.
<¿¹Á¦6> cast ¿¬»êÀÚÀÇ »ç¿ë ¿¹
<¸®½ºÆ®6> main()
{
int i,j;
i = 372;
j = 5;
printf("%5.3f\n", (float)i / (float)j );
}
14. sizeof ¿¬»êÀÚ
sizeof´Â ¹Ù·Î ´ÙÀ½¿¡ ³ª¿À´Â º¯¼ö³ª ÀÚ·áÇüÀÌ Â÷ÁöÇÏ´Â ¸Þ¸ð¸®ÀÇ ¹ÙÀÌÆ®¼ö¸¦ ±¸ÇØÁÖ´Â ¿¬»êÀÚÀÌ´Ù.
char c;
sizeof(c); 1ÀÇ °ªÀ» °¡Áø´Ù.
sizeof(int); 2ÀÇ °ªÀ» °¡Áø´Ù.
ÀÌ·¸°Ô Çؼ CÀÇ ¸ðµç ¿¬»êÀÚ¿¡ ´ëÇØ °£·«ÇÏ°Ô ³ª¸¶ ¾Ë¾Æ º¸¾Ò´Ù.Ãʺ¸Àڵ鿡°Õ ºÎ´ã½º·¯¿î ¾çÀÌ°ÚÁö¸¸- ¶Ç, ¾µµ¥¾ø´Â ¿¬»êÀÚ°¡ ¿ÖÀ̸® ¸¹³Ä°í -,C¾ð¾î´Â °í±Þ¾ð¾î¿Í Àú±Þ¾ð¾îÀÇ Æ¯Â¡À» °ñ°í·ç °®Ãß°í ÀÖ°í, Àú±Þ¾ð¾îÀÇ Æ¯¼ºÀ»½ÊºÐ È°¿ëÇÏ·Á¸é ÀÌ·¯ÇÑ ¿¬»êÀÚµéÀ» Àß »ç¿ëÇÒ ÁÙ ¾Ë¾Æ¾ß ÇÑ´Ù.
16. ¿¬»êÀÚ¸¦ »ç¿ëÇÑ ¿¹Á¦µé
¸î °¡Áö ¿¹Á¦¸¦ ÅëÇÏ¿© ¿¬»êÀÚµéÀÇ ½ÇÁ¦ »ç¿ë¹ý¿¡ °üÇÏ¿© »ìÆ캸ÀÚ.
<¿¹Á¦7> ÀÓÀÇÀÇ Á¤¼ö¸¦ ÀÔ·Â¹Þ¾Æ ±×¼ö¸¦ 2Áø¼ö·Î Ãâ·ÂÇÏ´Â ÇÁ·Î±×·¥ÀÛ¼º.
(C´Â ÀÌÁø¼ö¸¦ Áö¿øÇÏÁö ¾Ê´Â´Ù)
<¸®½ºÆ®7> #include <stdio.h>
main()
{
int i,n,k;
printf("Á¤¼öÀÔ·Â: ");
scanf("&n");
for ( i=15; i >= 0; i--) {
k = (n >> i) & 0x1; /* ½¬ÇÁÆ®¿¬»ê, ºñÆ®¿¬»ê */
printf("%1d",k);
}
}
<Âü°í> C¿¡¼ 8Áø¼öÀÇ Ç¥±â´Â ¼öÄ¡¾Õ¿¡ 0À» ºÙ¿© Ç¥½ÃÇÏ°í, 16Áø¼ö´Â 0x¸¦ ºÙ¿© Ç¥½ÃÇÑ´Ù. ÀÌ·¯ÇÑ ¼öµéÀº Ç×»ó ºÎÈ£¾ø´Â Á¤¼ö·Î Ãë±ÞÇÑ´Ù. printf ()ÇÔ¼öÀÇ Æ÷¸ËÄÚµå´Â °¢°¢ %o¿Í %xÀÌ´Ù.
C¿¡¼ 2Áø¼ö¸¦ Ãâ·ÂÇÏ·Á¸é ÃÖ»óÀ§ ºñÆ®ºÎÅÍ ±× ºñÆ® ÆÐÅÏ(1/0)À» Ãâ·Â½ÃÅ°´Â ¹æ¹ýÀ» »ç¿ëÇÑ´Ù.
ºñÆ® ÆÐÅÏÀ»Ãâ·ÂÇÏ´Â ¹æ¹ýÀº ¿ì¼± Ãâ·ÂÇÏ·Á´Â ºñÆ®¸¦ ÃÖÇÏÀ§ ºñÆ®°¡ µÇµµ·Ï ¿ì·Î ½¬ÇÁÆ®½ÃŲ ´ÙÀ½ ÀÌ °ªÀ» 0000000000000001°ú &(AND) ¿¬»êÀ» ½ÃÄÑ, ÃÖÇÏÀ§ ºñÆ®¸¦ Á¦¿ÜÇÑ ´Ù¸¥ ¸ðµç ºñÆ®µéÀº 0ÀÇ·Î «¼ÇÑ´Ù. ¸¸¾à, ÀÚ¸®¼ö°¡ 16°³À̸é ÀÌ·± ÀÛ¾÷À» 16¹ø ¹Ýº¹ÇÏ¿© ¾ò¾îÁø °ªÀ» Çϳª¾¿ Ãâ·ÂÇÑ´Ù.
<±×¸²1> »óÀ§¿¡¼ 13¹ø° ºñÆ®ÆÐÅÏÀ» Á¶»çÇÏ´Â °úÁ¤
*
0 1 0 1 1 0 1 0 1 0 0 0 1 1 1 0 ¿ø·¡ÀÇ ¼ö
0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 1 ¿ì·Î 13ȸ ½¬ÇÁÆ®
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1°ú & ¿¬»ê
------------------------------------
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 13¹ø° ÆÐÅÏÀÌ ±¸ÇØÁ³´Ù!
<¿¹Á¦8> 123456789 ¿Í °°ÀÌ Ãâ·ÂÇÏ´Â ÇÁ·Î±×·¥À» ÀÛ¼ºÇÏ¿©¶ó.
*0000000* 1 (ÈùÆ®: °¡·Î+¼¼·ÎÀÇ °ªÀÌ 10ÀÏ ¶§¿Í
0*00000*0 2 °¡·Î¿Í ¼¼·ÎÀÇ °ªÀÌ °°À» ¶§
00*000*00 3 *À» Ãâ·ÂÇÏ´Â ÇÁ·Î±×·¥)
000*0*000 4
0000*0000 5
000*0*000 6
00*000*00 7
0*00000*0 8
*0000000* 9
<¸®½ºÆ®8> main()
{
int i,j;
for (i = 1;i <= 9;i++)
for (j = 1;j <= 9; j++)
i == j || i + j == 10 ? printf("*") : printf("0");
printf("\n");
}
À§ÀÇ ÇÁ·Î±×·¥¿¡¼ ´Ü¹®°ú º¹¹® È¥µ¿À¸·Î ÀÎÇÑ ¿¡·¯°¡ ÀÖ´Ù. ±×°ÍÀ» Á÷Á¢ ã¾Æº¸±â ¹Ù¶õ´Ù.
¥². ±âº» ¸í·É¹®°ú È帧ÀÇ Á¦¾î
1. ¹®ÀÇ Á¾·ù
C¾ð¾î¿¡¼ »ç¿ëµÇ´Â ¹®ÀåÀÇ Á¾·ù¿¡´Â ´ÙÀ½°ú °°Àº Á¾·ù°¡ ÀÖ´Ù.
+----+
|¹®Àå|
+-+--+ +----------+
+-----+ Çü ¼±¾ð¹®| char, int, double, float
| +----------+
| +----------+ +-----------+
+-----+ Á¦ ¾î ¹® +-+-+ ÆÇ ´Ü ¹® | if~else, switch~case
| +----------+ | +-----------+
| | +-----------+
| +-+ ¹Ý º¹ ¹® | while, for, do~while
| | +-----------+
| | +-----------+
| +-+ ºÐ ±â ¹® | break, continue, goto, return
| +-----------+
| +----------+
+----+ ±â Ÿ +--+-- comment(ÁÖ¼®¹®)
+----------+ +-- expression statement(½Ä¹®)
+-- compound statement(º¹¹®)
+-- null statement(°ø¹®)
1) ÁÖ¼®¹®(comment)
ÁÖ¼®¹®À̶õ ÇÁ·Î±×·¥À» ½±°Ô ÀÌÇØÇÒ ¼ö ÀÖµµ·Ï Âü°í°¡ µÇ´Â ³»¿ëÀ» ±â¼úÇÏ´Â ¹®ÀåÀ¸·Î¼ '/*'·Î ½ÃÀÛÇؼ '*/'·Î ³¡³ª´Â ¹®ÀÚµéÀÇ Áý´ÜÀ» ¸»ÇÑ´Ù.
[º¸±â] ÁÖ¼®¹®ÀÇ ¿¹
/*------------------------
* Test Program
*-------------------------
*/
2) ½Ä¹®(expression statement)
½Ä¹®À̶õ ¿¬»êÀÚ¿Í ÇÇ¿¬»êÀÚÀÇ °áÇÕ¿¡ ÀÇÇÏ¿© ÀÌ·ç¾îÁø ½ÄÀ» ¸»ÇÏ¸ç ±× ÀÏ¹Ý Çü½ÄÀº ´ÙÀ½°ú °°´Ù.
<ÀÏ¹Ý Çü½Ä>
expression ; |
[º¸±â] ½Ä¹®ÀÇ ¿¹
sum=a+b;
y=x+(a+b)*d;
3) ´Ü¹®(single statement)
ÇÁ·Î±×·¥Àº ¾î¶² ±â´ÉÀ» ¼öÇàÇÏ´Â ¹®ÀåµéÀÇ ÁýÇÕü·Î ±¸¼ºµÇ´Âµ¥ ÇÁ·Î±×·¥À» ±¸¼ºÇÏ´Â ÇϳªÇϳªÀÇ ¹®ÀåÀ» ´Ü¹®À̶ó°í ÇÑ´Ù.
[º¸±â] ´Ü¹®ÀÇ ¿¹
int a, b, sum;
a=b=10;
sum=a+b;
printf("sum = %d\n", sum);
À§ÀÇ ¿¹¿¡¼ ¾Ë ¼ö ÀÖµíÀÌ C¾ð¾î¿¡¼ ÇϳªÀÇ ¹®ÀåÀº ¹Ýµå½Ã ¼¼¹ÌÄÝ·Ð(;)À¸·Î ³¡³´Ù. Áï ¹®ÀåÀÇ ±¸ºÐÀº ¼¼¹ÌÄݷп¡ ÀÇÇؼ ÀÌ·ç¾îÁø´Ù.
4) º¹¹®(compound statement)
º¹¹®À̶õ ³í¸®ÀûÀ¸·Î 2°³ ÀÌ»óÀÇ ¹®À» { }·Î µÑ·¯½Î¼ ÇϳªÀÇ ¹®Ã³·³ »ç¿ë ÇÒ ¼ö ÀÖµµ·Ï ÇÑ °ÍÀ¸·Î ºí·°(block)À̶ó°íµµ ÇÑ´Ù.
º¹¹®ÀÇ ÀϹÝÇü½ÄÀº ´ÙÀ½°ú °°´Ù.
<ÀϹÝÇü½Ä>
{ statement;
statement; } |
[º¸±â] º¹¹®ÀÇ ¿¹
if ( a> 0) {
sum=sum+a;
n=n+1;
}
else {
sum=sum-a;
n=n+1;
}
À§ ¿¹¿¡¼ { }¾ÈÀÇ µÎ ¹®ÀåÀº ¸¶Ä¡ ÇϳªÀÇ ¹®Àåó·³ ÀÛµ¿ÇÑ´Ù. Áï if¹®¿¡ ÀÇÇÏ¿© aÀÇ °ªÀÌ 10º¸´Ù Å©¸é { }¼ÓÀÇ µÎ ¹®ÀåÀÌ ½ÇÇàµÇ°í aÀÇ °ªÀÌ 10º¸´Ù Å©Áö ¾ÊÀ¸¸é else´ÙÀ½¿¡ ÀÖ´Â { }¼ÓÀÇ µÎ ¹®ÀåÀ» ½ÇÇàÇÏ°Ô µÈ´Ù.
5) °ø¹®(null statement)
°ø¹®À̶õ ¼¼¹ÌÄÝ·Ð(;)¸¸À¸·Î ±¸¼ºµÈ ¹®ÀåÀ» ¸»ÇÑ´Ù. °ø¹®ÀÌ »ç¿ëµÇ´Â ´ëÇ¥ÀûÀÎ ¿¹´Â ´ÙÀ½°ú °°ÀÌ ¹Ýº¹ ·çÇÁ¿¡ ÀÇÇÏ¿© ½Ã°£À» Áö¿¬½ÃÅ°´Â °æ¿ìÀÌ´Ù.
[º¸±â] °ø¹®ÀÇ »ç¿ë ¿¹
for (i=1;i<=10000;i++)
; /* ;¸¸À¸·Î ±¸¼ºµÈ °ø¹®ÀÌ´Ù */
À§ ¿¹¿¡¼ »ç¿ëµÈ °ø¹®Àº iÀÇ °ªÀÌ 1ÀÏ ¶§ºÎÅÍ 10000ÀÌ µÉ ¶§±îÁö 1¾¿ Áõ°¡½ÃÅ°´Â ÀÛ¾÷¸¸À» ´Ü¼øÈ÷ ¹Ýº¹ÇÔÀ¸·Î½á ½Ã°£À» Áö¿¬½ÃÅ°±â À§ÇÏ¿© »ç¿ëµÇ¾ú´Ù.
6) ¼±¾ð¹®(declaration statement)
C ÇÁ·Î±×·¥ ³»¿¡¼ »ç¿ëÇÒ º¯¼öÀÇ ÇüÀ» ¼±¾ðÇϱâ À§ÇÏ¿© »ç¿ëµÇ´Â ¹®ÀåÀ» ¼±¾ð¹®À̶ó°í ÇÑ´Ù.
C ÇÁ·Î±×·¥¿¡¼ »ç¿ëµÉ ¸ðµç º¯¼ö´Â ¹Ýµå½Ã ±× º¯¼ö°¡ »ç¿ëµÇ±â Àü¿¡ int, short, longµî°ú °°Àº Çü¼±¾ð¹®¿¡ ÀÇÇÏ¿© ¹Ì¸® ¼±¾ðÇÏ¿©¾ß ÇÑ´Ù. ±×·¡¾ß ¼±¾ðµÈ º¯¼öÀÇ À̸§°ú µ¥ÀÌÅÍÀÇ ÇüÀÌ ¼º¸³µÇ°í ±â¾ïÀå¼Ò°¡ ÇÒ´çµÈ´Ù.
[º¸±â] ¼±¾ð¹®ÀÇ ¿¹
int counter;
int a, b, c;
int a=0, b=10, c=30;
2. °ü°è ¿¬»êÀÚ¿Í ¿¬»ê½Ä
1) °ü°è ¿¬»êÀÚ
°ü°è ¿¬»êÀÚ´Â µÎ µ¥ÀÌÅÍÀÇ ´ë¼Ò¸¦ ºñ±³ÇÏ¿© ÆÇ´ÜÇÒ ¶§ »ç¿ëµÇ´Â ¿¬»ê ±âÈ£·Î¼ ÀϹÝÀûÀ¸·Î if¹®°ú ÇÔ²² »ç¿ëµÈ´Ù.
[º¸±â] °ü°è ¿¬»êÀÚÀÇ Á¾·ù¿Í ±â´É
¿¬»êÀÚ |
±â ´É |
¿ì¼±¼øÀ§ |
»ç¿ë¿¹ |
> >= < <= == != |
~º¸´Ù Å©´Ù ~º¸´Ù Å©°Å³ª °°´Ù ~º¸´Ù ÀÛ´Ù ~º¸´Ù À۰ųª °°´Ù ~¿Í °°´Ù ~¿Í °°Áö ¾Ê´Ù |
1 1 1 1 2 2 |
a > b a >= b a < b a <= b a == b a != b |
2) °ü°è½Ä
µÎ µ¥ÀÌÅÍÀÇ ´ë¼Ò ºñ±³¸¦ ÇÒ ¸ñÀûÀ¸·Î °ü°Ô ¿¬»êÀÚ¸¦ »ç¿ëÇÏ¿© ³ªÅ¸³½ ½ÄÀ» °ü°è ¿¬»ê½Ä ¶Ç´Â °ü°è½Ä(relational expression)À̶ó°í ÇÑ´Ù.
°ü°è½Äµµ ´ëÀԽİú ¸¶Âù°¡Áö·Î °ªÀ» °®´Â´Ù. Áï °ü°è½ÄÀÌ ¼º¸³ÇÏ¸é °ü°è½ÄÀÇ °ªÀº 1ÀÌ µÇ°í °ü°è½ÄÀÌ ¼º¸³ÇÏÁö ¾ÊÀ¸¸é °ü°è½ÄÀÇ °ªÀº 0ÀÌ µÈ´Ù. ´Ù½Ã ¸»Çؼ C¾ð¾î¿¡¼´Â Âü(ture)°ªÀº 1·Î °£ÁÖµÇ°í °ÅÁþ(false)°ªÀº 0À¸·Î °£ÁֵȴÙ.
¿¹¸¦ µé¾î a=10, b=20ÀÏ °æ¿ì¿¡
result = ( a > b );
¶ó´Â °ü°è½ÄÀÌ ¼º¸³µÇÁö ¾Ê±â ¶§¹®¿¡ ( a > b )ÀÇ ¿¬»ê °á°ú °ªÀº 0ÀÌ µÇ¸ç ±× °ªÀº result¿¡ ±â¾ïµÈ´Ù.
3. if ¹®
if¹®Àº ÀÔ·ÂµÈ µ¥ÀÌÅͳª ¿¬»ê °á°ú¸¦ ÁÖ¾îÁø Á¶°Ç°ú ºñ±³ÇÏ¿© Á¶°ÇÀÇ ¼º¸³¿©ºÎ¿¡ µû¶ó ÇÁ·Î±×·¥ÀÇ ½ÇÇàÇÒ ³»¿ëÀ» ´Þ¸® Çϵµ·Ï Áö½ÃÇÏ´Â ¸í·É¹®À¸·Î¼ ±× ÀÏ¹Ý Çü½ÄÀº ´ÙÀ½°ú °°´Ù.
<ÀϹÝÇü½Ä>
if (Á¶°Ç½Ä) ÇÁ·Î±×·¥ ¹®Àå; |
<¼ø¼µµ>
|
|
|
|
|
|
|
|
|
|
|
Á¶°Ç½Ä |
|
||
|
|
False |
||
|
|
|
|
|
|
True |
|
||
ÇÁ·Î±×·¥ ¹®Àå |
|
|||
|
||||
|
|
|
||
|
|
|
[º¸±â] if ¹®ÀÇ »ç¿ë ¿¹
if (counter<0)
counter = -counter;
printf("value of counter = %d\n",counter);
if¹®ÀÌ ½ÇÇàµÉ ¶§ counterÀÇ °ªÀÌ 0º¸´Ù ÀÛÀ¸¸é counter = -counter;°¡ ½ÇÇà µÈ ÈÄ printf( )ÇÔ¼ö°¡ ½ÇÇàµÈ´Ù.
¹Ý¸é¿¡ counter°¡ 0ÀÌ»óÀ̸é counter=-counterÀº ¹«½ÃµÇ°í printf( )ÇÔ¼ö°¡ °ð¹Ù·Î ½ÇÇàµÈ´Ù.
¡º½Ç½À 3-01¡»¿¹Á¦ ÇÁ·Î±×·¥
/*----------------------------------------------------------------------------------------------
* c3-01.c : if¹® ¿¬½À
*---------------------------------------------------------------------------------------------*/
main( )
{
int number, absolute;
printf("ÀÔ·Â µ¥ÀÌÅÍ = ");
scanf("%d",&number);
absolute = number;
if ( number < 0 )
absolute = -number;
printf("%dÀÇ Àý´ë°ªÀº %dÀÔ´Ï´Ù.\n", number, absolute);
}
¢Ñ ½ÇÇà °á°ú 1 ¢Ñ ½ÇÇà °á°ú 2
c>c3-01 c>c3-01
ÀÔ·Â µ¥ÀÌÅÍ = -123 ÀÔ·Â µ¥ÀÌÅÍ = 5600
-123ÀÇ Àý´ë°ªÀº 123ÀÌ´Ù. 5600ÀÇ Àý´ë°ªÀº 5600ÀÌ´Ù.
À§ ÇÁ·Î±×·¥Àº Å°º¸µå·Î ÀÔ·ÂÇÑ Á¤¼öÇü µ¥ÀÌÅÍÀÇ Àý´ë°ªÀ» ±¸ÇÏ¿© Ãâ·ÂÇÏ´Â ÇÁ·Î±×·¥ÀÌ´Ù.
¡¶¿¬½À 1¡·Å°º¸µå·Î Á¤¼ö¸¦ ÀÔ·ÂÇÏ¿© ±× ¼ö°¡ Ȧ¼öÀÎÁö ¦¼öÀÎÁö¸¦ ÆǺ°ÇÏ¿© Ãâ·ÂÇÏ´Â ÇÁ ·Î±×·¥À» ÀÛ¼ºÇÏ¿©¶ó. (´Ü, if¹®À» »ç¿ëÇÒ °Í)
4. if~else ¹®
if~else ¹®Àº Á¶°ÇÀÇ ¼º¸³ ¿©ºÎ¿¡ µû¶ó µÎ °¥·¡·Î ºÐ±âµÇ¾î °¢°¢ ´Ù¸¥ ÀÛ¾÷À» ¼öÇàÇÑ ÈÄ ±× ´ÙÀ½ÀÇ Ã³¸®¸¦ ¼öÇà½Ãų ¶§ »ç¿ëÇÏ´Â ¸í·É¹®À¸·Î¼ ±× ÀϹÝÇü½ÄÀº ´ÙÀ½°ú °°´Ù.
<ÀϹÝÇü½Ä>
if (Á¶°Ç½Ä) ÇÁ·Î±×·¥ ¹®Àå1; else ÇÁ·Î±×·¥ ¹®Àå2; |
<¼ø¼µµ>
|
|
|
|
|
|
|
|
|
|
|
|||
|
Á¶°Ç½Ä |
|
||||
|
|
False |
|
|
||
|
|
|
|
|||
|
True |
|
|
|
||
ÇÁ·Î±×·¥¹®Àå1 |
|
ÇÁ·Î±×·¥¹®Àå2 |
||||
|
||||||
|
|
|
|
|
||
|
|
|
|
|
´ÙÀ½ ¹®Àå;
[º¸±â] if ~ else¹®ÀÇ »ç¿ë ¿¹
if (x>=100)
h=h+1; /* ÇÁ·Î±×·¥ ¹®Àå1 */
else
i=i-1; /* ÇÁ·Î±×·¥ ¹®Àå 2 */
if¹®ÀÌ ½ÇÇàµÉ ¶§ xÀÇ °ªÀÌ 100º¸´Ù Å©°Å³ª °°À¸¸é h=h+1À» ½ÇÇàÇÏ°í xÀÇ °ªÀÌ 100º¸´Ù ÀÛÀ¸¸é i=i-1À» ½ÇÇàÇÑ´Ù. Áï, Á¶°Ç½ÄÀÇ ¼º¸³ ¿©ºÎ¿¡ µû¶ó ÇÁ·Î±×·¥ ¹®Àå1À̳ª ÇÁ·Î±×·¥ ¹®Àå2 Áß ¾î´À ÇÑÂÊÀÌ ½ÇÇàµÈ´Ù.
¡º½Ç½À 3-02¡»¿¹Á¦ ÇÁ·Î±×·¥
/*----------------------------------------------------------------------------------------------
* c3-02.c : if~else¹® ¿¬½À
*---------------------------------------------------------------------------------------------*/
main( )
{
int number, remainder;
printf("ÀÔ·Â µ¥ÀÌÅÍ = ");
scanf("%d",&number);
remainder = number % 2;
if ( remainder == 0)
printf("%d´Â ¦¼öÀÌ´Ù.\n",number);
else
printf("%d´Â Ȧ¼öÀÌ´Ù.\n",number);
}
¢Ñ ½ÇÇà °á°ú 1 ¢Ñ ½ÇÇà °á°ú 2
c>c3-02 c>c3-02
ÀÔ·Â µ¥ÀÌÅÍ = 123 ÀÔ·Â µ¥ÀÌÅÍ = 1286
123Àº Ȧ¼öÀÌ´Ù. 1286Àº ¦¼öÀÌ´Ù.
¡¶¿¬½À 2¡·µÎ°³ÀÇ Á¤¼ö a, b¸¦ ÀÔ·ÂÇÏ¿© a>=bÀ̸é c=a*b, a<bÀ̸é c=a*a+bÀÇ °ªÀ» ´ÙÀ½ °ú °°ÀÌ Ãâ·ÂÇϵµ·Ï Ã÷·Î±×·¥À» ÀÛ¼ºÇ϶ó.
¢Ñ ½ÇÇà °á°ú 1 ¢Ñ ½ÇÇà °á°ú 2
a , b = ? 20,10 a , b = ? 10,20
a = 20 , b = 10 --> a >= b a = 10 , b = 20 --> a < b
c = a * b ===> 200 c = a * a + b ===> 120
¡¶¿¬½À 3¡·Å°º¸µå·Î ÇϳªÀÇ Á¤¼ö nÀ» ÀÔ·ÂÇÏ¿© 1ºÎÅÍ n±îÁö Ȧ¼öÀÇ ÇÕ°ú ¦¼öÀÇ ÇÕÀ» °è »êÇÏ¿© Ãâ·ÂÇÏ´Â ÇÁ·Î±×·¥À» if~else¹®À» »ç¿ëÇÏ¿© ÀÛ¼ºÇÏ¿©¶ó.
¡¶¿¬½À 4¡·Å°º¸µå·Î ÇϳªÀÇ µ¥ÀÌÅ͸¦ ÀÔ·ÂÇÏ¿© ±× Àý´ë°ªÀ» Ãâ·ÂÇÏ´Â ÇÁ·Î±×·¥À» if~else ¹®À» »ç¿ëÇÏ¿© ÀÛ¼ºÇÏ¿©¶ó.
5. Á¶°Ç ¿¬»êÀÚ(3Ç× ¿¬»êÀÚ)
C¾ð¾î¿¡¼´Â if~else¹®À» º¸´Ù °£°áÇÏ°Ô Ç¥ÇöÇÏ´Â ¹æ¹ýÀ¸·Î Á¶°Ç ¿¬»êÀÚ (? :)¸¦ Á¦°øÇÏ°í ÀÖ´Ù. Áï Á¶°Ç ¿¬»êÀڴ ƯÁ¤ÇÑ if~else¹®À» ¾à½ÄÀ¸·Î °£°áÇÏ°Ô Ç¥ÇöÇÒ ¶§ »ç¿ëÇϸç, ÇÇ¿¬»êÀÚ°¡ 3°³ »ç¿ë µÈ´ÙÇÏ¿© 3Ç× ¿¬»êÀÚ¶ó°íµµ ÇÑ´Ù. ±×¸®°í Á¶°Ç ¿¬»êÀÚ¿¡ ÀÇÇØ Ç¥ÇöµÈ ½ÄÀ» Á¶°Ç ¿¬»ê½ÄÀ̶ó°í ÇÏ¸ç ±× ÀϹÝÇü½ÄÀº ´ÙÀ½°ú °°´Ù.
<ÀϹÝÇü½Ä>
Á¶°Ç½Ä ? ½Ä1 : ½Ä2 |
㽬 1. Á¶°Ç½ÄÀº ¿øÄ¢ÀûÀ¸·Î´Â »ê¼úÇü µ¥ÀÌÅͳª ¼ö½ÄÀÌ Çã¿ëµÇÁö¸¸ ÀϹÝÀûÀ¸·Î °ü°è½ÄÀ̳ª ³í¸®½ÄÀÌ »ç¿ëµÈ´Ù.
2. ½Ä1°ú ½Ä2ÀÇ µ¥ÀÌÅÍ ÇüÀº µ¿ÀÏÇϰųª µ¿ÀÏÇÑ µ¥ÀÌÅÍ ÇüÀ¸·Î º¯È¯ÀÌ °¡´ÉÇÑ °ÍÀ̶ó ¾ß ÇÑ´Ù.
Á¶°Ç ¿¬»ê½ÄÀº Á¶°Ç½ÄÀÇ °á°ú°¡ ÂüÀÌ¸é ½Ä1ÀÇ °ªÀÌ ¿¬»ê °á°ú°¡ µÇ°í, Á¶°Ç½ÄÀÇ °á°ú°¡ °ÅÁþÀÌ¸é ½Ä2ÀÇ °ªÀÌ ¿¬»ê °á°ú°¡ µÈ´Ù. ´ëÀÔ½ÄÀ̳ª °ü°è½Ä°ú ¸¶Âù°¡Áö·Î Á¶°Ç½Äµµ °ªÀ» °®´Â´Ù. µû¶ó¼ Á¶°Ç ¿¬»êÀÚ´Â ½ÄÀÌ »ç¿ëµÉ ¼ö ÀÖ´Â °÷ÀÌ¸é ¾îµðµçÁö »ç¿ëÇÒ ¼ö ÀÖ´Ù.
[º¸±â] Á¶°Ç ¿¬»ê½ÄÀÇ »ç¿ë ¿¹
max = ( a> b) ? a : b;
À§ÀÇ Á¶°Ç ¿¬»ê½Ä¿¡¼ ¸¸ÀÏ a°¡ bº¸´Ù Å©¸é maxÀÇ °ªÀº a°¡ µÇ°í ±×·¸Áö ¾ÊÀ¸¸é maxÀÇ °ªÀº b°¡ µÈ´Ù. °ü°è ¿¬»êÀÚ³ª ³í¸® ¿¬»êÀÚ°¡ Á¶°Ç ¿¬»êÀÚº¸´Ù ¿¬»ê ¼øÀ§°¡ ³ô±â ¶§¹®¿¡ Á¶°Ç½ÄÀÇ ÀüÈÄ¿¡ °ýÈ£¸¦ »ç¿ëÇÏÁö ¾Ê¾Æµµ °ü°è¾øÀ¸³ª Á¶°Ç ¿¬»ê½ÄÀ» Àб⠽±°Ô Çϱâ À§ÇØ ÀϹÝÀûÀ¸·Î ¸¹ÀÌ »ç¿ëÇÑ´Ù.
Áï À§ÀÇ Á¶°Ç ¿¬»ê½ÄÀº ´ÙÀ½°ú °°ÀÌ if~else¹®À¸·Î Ç¥ÇöÇÒ ¼ö ÀÖ´Ù.
if (a>b)
max=a;
else
max=b;
¡¶¿¬½À 5¡·¾Æ·¡ÀÇ ¹®ÀåÀ» ¼³¸íÇÏ¿©¶ó.
printf("ºÎÈ£ = %d\n",
(number<0) ? -1 : ((number == 0) ? 0 : 1 ));
¡º½Ç½À 3-03¡»¿¹Á¦ ÇÁ·Î±×·¥
/*----------------------------------------------------------------------------------------------
* c3-03.c : Á¶°Ç ¿¬»êÀÚÀÇ »ç¿ë ¿¹1
*---------------------------------------------------------------------------------------------*/
main( )
{
int a, b, c, max
printf("a, b, c = ? ");
scanf("%d, %d, %d", &a,&b,&c);
max=(a>=b) ? a : b;
max=(max>=c) ? max : c;
printf("max = %d\n",max);
}
¢Ñ ½ÇÇà °á°ú 1
c>c3-03
a, b, c = ? 1,2,3
max = 3
¡º½Ç½À 3-04¡»¿¹Á¦ ÇÁ·Î±×·¥
/*----------------------------------------------------------------------------------------------
* c3-04.c : Á¶°Ç ¿¬»êÀÚÀÇ »ç¿ë ¿¹2
*---------------------------------------------------------------------------------------------*/
main( )
{
int number, sign;
printf("number = ? ");
scanf("%d", &number);
sign = (number<0) ? -1 : ((number == 0) ? 0 : 1 );
printf("ºÎÈ£ = %d\n",sign);
}
¢Ñ ½ÇÇà °á°ú 1 ¢Ñ ½ÇÇà °á°ú 2 ¢Ñ ½ÇÇà °á°ú 3
c>c3-04 c>c3-04 c>c3-04
number= ? 123 number= ? -45 number= ? 0
ºÎÈ£ = 1 ºÎÈ£ = -1 ºÎÈ£ = 0
6. ³í¸® ¿¬»êÀÚ¿Í ³í¸®½Ä
1) ³í¸® ¿¬»êÀÚ
³í¸® ¿¬»êÀÚ´Â ¸î°¡ÁöÀÇ Á¶°ÇÀ» Á¶ÇÕÇÒ ¶§ »ç¿ëÇÏ´Â ¿¬»ê ±âÈ£·Î ±× Á¾·ù¿Í Àǹ̴ ´ÙÀ½°ú °°´Ù.
[º¸±â] ³í¸® ¿¬»êÀÚÀÇ Á¾·ù¿Í ±â´É
¿¬ »ê ÀÚ |
±â ´É |
³í¸®½ÄÀÇ ¿¹ |
¿ì¼±¼øÀ§ |
! && || |
³í¸®ºÎÁ¤(NOT) ³í¸®°ö (AND) ³í¸®ÇÕ (OR) |
!(4>7) (Âü) 5>2 && 6>8 (°ÅÁþ) 5>2 || 6>8 (Âü) |
1 2 3 |
2) ³í¸®½Ä
³í¸®½Ä (logical expression)À̶õ Çϳª ÀÌ»óÀÇ ³í¸® ¿¬»êÀÚ¿¡ ÀÇÇÏ¿© °áÇÕµÈ ½ÄÀ» ¸»ÇÏ¸ç ³í¸® ¿¬»ê½ÄÀ̶ó°íµµ ÇÑ´Ù. ³í¸®½Äµµ ´ëÀÔ½ÄÀ̳ª °ü°è½Ä°ú ¸¶Âù°¡Áö·Î ½Ä ÀÚü°¡ ÇϳªÀÇ °ªÀ» °®´Â´Ù. ³í¸®½ÄÀÌ ¼º¸³ÇÏ¸é ³í¸®½ÄÀÇ °á°ú°¡ Âü(true)ÀÌ µÇ¾î ±× °ªÀº 1ÀÌ µÇ°í ³í¸®½ÄÀÌ ¼º¸³ÇÏÁö ¾ÊÀ¸¸é ³í¸®½ÄÀÇ °á°ú°¡ °ÅÁþ(false)ÀÌ µÇ¾î ±× °ªÀº 0ÀÌ µÈ´Ù.
¡º½Ç½À 3-05¡»¿¹Á¦ ÇÁ·Î±×·¥
/*----------------------------------------------------------------------------------------------
* c3-05.c : ³í¸® ¿¬»êÀÚÀÇ »ç¿ë ¿¹(1)
*---------------------------------------------------------------------------------------------*/
main( )
{
int a, b;
printf("a, b = ? " );
scanf("%d,%d", &a, &b);
if ( a%3 == 0 && b%4 == 0)
printf("%d¿Í %d´Â 3°ú 4ÀÇ ¹è¼öÀÌ´Ù.", a, b);
else
printf("%d¿Í %d´Â 3°ú 4ÀÇ ¹è¼ö°¡ ¾Æ´Ï´Ù.", a, b);
}
¢Ñ ½ÇÇà °á°ú 1 ¢Ñ ½ÇÇà °á°ú 2
c>c3-05 c>c3-05
a, b = ? 12,16 a, b = ? 12,15
12¿Í 16Àº 3°ú 4ÀÇ ¹è¼öÀÌ´Ù. 12¿Í 15´Â 3°ú 4ÀÇ ¹è¼ö°¡ ¾Æ´Ï´Ù.
¡º½Ç½À 3-06¡»¿¹Á¦ ÇÁ·Î±×·¥
/*----------------------------------------------------------------------------------------------
* c3-06.c : ³í¸® ¿¬»êÀÚÀÇ »ç¿ë ¿¹ (2)
*---------------------------------------------------------------------------------------------*/
main( )
{
int a, b, c, d, e, f;
printf("a, b = ? " );
scanf("%d,%d", &a, &b);
c = a>b;
d = !(a>b);
e = a>10 || b<10;
f = a>10 && b<10;
printf("a>b ============> %d \n", c);
printf("!(a>b) =========> %d \n", d);
printf("a>10 || b<10=====> %d \n", e);
printf("a>10 && b<10====> %d \n", f);
printf("!(a>10 || b<10)===> %d \n", !e);
printf("!(a>10 && b<10)==> %d \n", !f);
}
¢Ñ ½ÇÇà °á°ú 1 ¢Ñ ½ÇÇà °á°ú 2
c>c3-06 c>c3-06
a, b = ? 10,10 a, b = ? 10,20
a>b =============> 0 a>b =============> 0
!(a>b)============> 1 !(a>b)============> 1
a>10 || b<10=====> 0 a>10 || b<10======> 0
a>10 && b<10 ====> 0 a>10 && b<10 ====> 0
!(a>10 || b<10)====> 1 !(a>10 || b<10)====> 1
!(a>10 && b<10)===> 1 !(a>10 && b<10)====> 1
¡¶¿¬½À 6¡·ÇÁ·Î±×·¥ <c3-06.c>ÀÇ ½ÇÇà °á°ú¸¦ ¼³¸íÇÏ¿©¶ó.
¡¶¿¬½À 7¡·Å°º¸µå·Î ÇϳªÀÇ Á¤¼ö¸¦ ÀÔ·Â¹Þ¾Æ 3ÀÇ ¹è¼öÀÌ¸é¼ 4ÀÇ ¹è¼öÀΰ¡¸¦ ÆǺ°ÇÏ´Â ÇÁ ·Î±×·¥À» ÀÛ¼ºÇÏ¿©¶ó.
¢Ñ ½ÇÇà °á°ú 1 ¢Ñ ½ÇÇà °á°ú 2
a = ? 120 a = ? 130
120Àº 3°ú 4ÀÇ ¹è¼öÀÌ´Ù. 130Àº 3°ú 4ÀÇ ¹è¼ö°¡ ¾Æ´Ï´Ù.
¡¶¿¬½À 8¡·¿¬µµ¸¦ Å°º¸µå·Î ÀÔ·Â¹Þ¾Æ À±³âÀΰ¡ Æò³âÀΰ¡¸¦ ÆǺ°ÇÏ¿© Ãâ·ÂÇÏ´Â ÇÁ·Î±×·¥À» ÀÛ¼ºÇÏ¿©¶ó.
◇Âü°í : ¿¬µµ°¡ 400À¸·Î ³ª´©¾î Áö¸é À±³â, 400À¸·Î ³ª´©¾îÁöÁö ¾ÊÁö¸¸ 100À¸·Î ¸¸ ³ª´©¾î Áö¸é Æò³â, 100À¸·Î ³ª´©¾î ÁöÁö ¾ÊÁö¸¸ 4·Î ³ª´©¾î Áö¸é À± ³âÀÌ´Ù.
¢Ñ ½ÇÇà °á°ú 1 ¢Ñ ½ÇÇà °á°ú 2 ¢Ñ ½ÇÇà °á°ú 3
¿¬µµ = ? 1991 ¿¬µµ = ? 2000 ¿¬µµ = ? 2100
Æò³âÀÌ´Ù. À±³âÀÌ´Ù. Æò³âÀÌ´Ù.
¡¶¿¬½À 9¡·¾Æ·¡ ÇÁ·Î±×·¥ÀÇ ½ÇÇà °á°ú¸¦ ³ªÅ¸³»°í ½ÇÇà °á°ú¿Í °°ÀÌ Ãâ·ÂµÇ´Â ÀÌÀ¯¸¦ ¼³¸í ÇÏ¿©¶ó.
main( )
{
int a=20, b=20, c=30;
c = ( !(a-b) ? c + a : c - b);
printf ("c = %d", c);
}
7. º¹ÇÕ if¹® ( else~if)
if¹® ¼Ó¿¡ ¶Ç ´Ù¸¥ if¹®À» Æ÷ÇÔ ½ÃÅ°¸é Á¶°ÇÀ» º¹ÇÕÀûÀ¸·Î ºñ±³ ÆÇ´ÜÇÒ ¼ö Àִµ¥ ÀÌ·¯ÇÑ ¿ëµµ·Î »ç¿ëµÇ´Â if¹®À» º¹ÇÕ if¹®(nested if¹®)À̶ó°í ÇÑ´Ù.
º¹ÇÕ if¹®ÀÇ ÀÏ¹Ý Çü½ÄÀº ´ÙÀ½°ú °°´Ù.
<ÀϹÝÇü½Ä>
if (Á¶°Ç½Ä1) ÇÁ·Î±×·¥ ¹®Àå1; else if (Á¶°Ç½Ä2) ÇÁ·Î±×·¥ ¹®Àå2; else ÇÁ·Î±×·¥ ¹®Àå3; |
<¼ø¼µµ>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
false |
|
|
|
|
|
|
|
||
|
Á¶°Ç½Ä1 |
|
|
|
|
|
|
|
|
||||
|
|
|
|
|
|
|
|
|
|
|
|
||
|
|
|
|
|
|
|
|
|
false |
|
|
||
|
|
true |
|
Á¶°Ç½Ä2 |
|
|
|
||||||
|
|
|
|
|
|
|
|
|
|||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
ÇÁ·Î±×·¥ ¹®Àå1; |
|
|
|
true |
|
|
|
|
|||||
|
|
|
|
|
|
|
|||||||
|
|
|
|
|
ÇÁ·Î±×·¥ ¹®Àå2; |
|
ÇÁ·Î±×·¥ ¹®Àå3; |
||||||
|
|
|
|
|
|
||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
´ÙÀ½¹®Àå;
À§ÀÇ ÀϹÝÇü½Ä°ú ¼ø¼µµ´Â ´ÙÀ½°ú °°ÀÌ ¼³¸íÇÒ ¼ö ÀÖ´Ù.
1. ¸¸ÀÏ(Á¶°Ç½Ä1)ÀÌ ¼º¸³µÇ¸é (ÇÁ·Î±×·¥ ¹®Àå1)À» ½ÇÇàÇÑ ÈÄ if ºí·° ´ÙÀ½ÀÇ ¹®ÀåÀ» ½ÇÇà ÇÑ´Ù.
2. ¸¸ÀÏ(Á¶°Ç½Ä1)ÀÌ ¼º¸³µÇÁö ¾ÊÀ¸¸é (Á¶°Ç½Ä2)¸¦ ºñ±³ÇÑ´Ù. (Á¶°Ç½Ä2)°¡ ¼º¸³µÇ¸é (ÇÁ·Î ±×·¥ ¹®Àå2)¸¦ ½ÇÇàÇÑ ÈÄ ifºí·° ´ÙÀ½ ¹®ÀåÀ» ½ÇÇàÇÏ°í (Á¶°Ç½Ä2)°¡ ¼º¸³µÇÁö ¾ÊÀ¸¸é (ÇÁ·Î±×·¥ ¹®Àå3)À» ½ÇÇàÇÑ ÈÄ ifºí·° ´ÙÀ½ÀÇ ¹®ÀåÀ» ½ÇÇàÇÑ´Ù.
¡º½Ç½À 3-07¡»¿¹Á¦ ÇÁ·Î±×·¥
/*----------------------------------------------------------------------------------------------
* c3-07.c : º¹ÇÕ if¹® ¿¬½À
*---------------------------------------------------------------------------------------------*/
main( )
{
int a;
printf("a = ? ");
scanf("%d",&a);
if (a>0)
printf("\n%d",==>¾ç¼ö \n",a);
else
if (a<0)
printf("\n%d",==>À½¼ö \n",a);
else
printf("\n%d",==>0 \n",a);
}
¢Ñ ½ÇÇà °á°ú 1 ¢Ñ ½ÇÇà °á°ú 2 ¢Ñ ½ÇÇà °á°ú 3
c>c3-07 c>c3-07 c>c3-07
a = ? 1234 a = ? -567 a = ? 0
1234 ==>¾ç¼ö -567 ==>À½¼ö 0 ==>0
¡¶¿¬½À 10¡·µÎ °³ÀÇ Á¤¼ö a¿Í b¸¦ ÀÔ·ÂÇÏ¿©
1) a°¡ bº¸´Ù Å©¸é a > b
2) a°¡ bº¸´Ù ÀÛÀ¸¸é a < b
1) a°¡ bº¸´Ù °°À¸¸é a = b
¸¦ Ãâ·ÂÇÏ´Â ÇÁ·Î±×·¥À» ÀÛ¼ºÇÏ¿©¶ó.
¡¶¿¬½À 11¡·Á¡¼ö¸¦ ÀÔ·ÂÇÏ¿© ȯ»ê µî±ÞÀ» ÆÇÁ¤ÇÏ¿© Ãâ·ÂÇÏ´Â ÇÁ·Î±×·¥À» ÀÛ¼ºÇÏ¿©¶ó. ȯ »ê µî±ÞÀ» ÆÇÁ¤ÇÏ´Â ±âÁØÀº ´ÙÀ½°ú °°´Ù.
µî±Þ |
¼ö |
¿ì |
¹Ì |
¾ç |
°¡ |
Á¡¼ö |
100~90 |
89~80 |
79~70 |
69~60 |
59~0 |
¡¶¿¬½À 12¡·¼û°ÜÁø ¼ýÀÚ¸¦ ´ÙÀ½°ú °°Àº ÀýÂ÷·Î ã´Â ÇÁ·Î±×·¥À» ÀÛ¼ºÇÏ¿©¶ó.
´Ü, ¼û°ÜÁø ¼ýÀÚ´Â ÀÓÀÇÀÇ º¯¼ö¿¡ ±â¾ï½ÃÄÑ µÎ±â·Î ÇÑ´Ù.
¢Ñ ½ÇÇà °á°ú
ÀÔ·Â µ¥ÀÌÅÍ = ? 200
==>¼û°ÜÁø ¼ýÀÚº¸´Ù ÀÛ´Ù.
ÀÔ·Â µ¥ÀÌÅÍ = ? 300
==>¼û°ÜÁø ¼ýÀÚº¸´Ù Å©´Ù.
ÀÔ·Â µ¥ÀÌÅÍ = ? 250
==>¼û°ÜÁø ¼ýÀÚº¸´Ù ÀÛ´Ù.
ÀÔ·Â µ¥ÀÌÅÍ = ? 275
==>¼û°ÜÁø ¼ýÀÚº¸´Ù Å©´Ù.
ÀÔ·Â µ¥ÀÌÅÍ = ? 260
==>¼û°ÜÁø ¼ýÀÚº¸´Ù Å©´Ù.
ÀÔ·Â µ¥ÀÌÅÍ = ? 255
==>¼û°ÜÁø ¼ýÀÚº¸´Ù Å©´Ù.
ÀÔ·Â µ¥ÀÌÅÍ = ? 253
==>¼û°ÜÁø ¼ýÀÚÀÌ´Ù.
8. for ¹®
1) for¹®
Çϳª ÀÌ»óÀÇ ¸í·É¹®À» ¹Ýº¹ÇÏ¿© ½ÇÇàÇÏ´Â ±â¹ýÀ» ·çÇÁ(loop) ±â¹ýÀ̶ó°í ÇÑ´Ù. C¾ð¾î¿¡´Â ¹Ýº¹ ·çÇÁ Á¦¾î ¸í·ÉÀ¸·Î¼ for, while, do°¡ Àִµ¥ ÀÌ Áß¿¡¼ °¡Àå ¼Õ½±°í ÀüÇüÀûÀÎ ¹Ýº¹ ±¸Á¶¸¦ °®´Â ¸í·É¹®ÀÌ for¹®ÀÌ´Ù.
for¹®ÀÇ ÀϹÝÇü½ÄÀº ´ÙÀ½°ú °°´Ù.
<ÀϹÝÇü½Ä>
for (Ãʱâ½Ä ; Á¶°Ç½Ä ; ·çÇÁ½Ä) ¹Ýº¹·çÇÁ |
Ãʱâ½Ä ¹Ýº¹À» Á¦¾îÇÏ´Â Á¦¾î º¯¼öÀÇ ÃʱⰪÀ» ÁöÁ¤Çϱâ À§ÇÏ¿© for·çÇÁ¸¦ ½ÃÀÛ Çϱâ Àü¿¡ ´Ü Çѹø¸¸ ½ÇÇàµÈ´Ù.
Á¶°Ç½Ä for·çÇÁ¸¦ ¹þ¾î ³ª±â À§ÇÑ Á¶°Ç ÆǴܽÄÀ¸·Î¼ Á¶°Ç½ÄÀÇ °ªÀÌ ÂüÀÎ µ¿¾È ¸¸ ¹Ýº¹ ¸í·É¹®À» ½ÇÇàÇÏ´Ù°¡ Á¶°Ç½ÄÀÇ °ªÀÌ °ÅÁþÀÌ µÇ¸é for·çÇÁ¸¦ ¹þ ¾î³´Ù.
·çÇÁ½Ä Á¦¾î º¯¼öÀÇ °ªÀ» Áõ°¡½ÃÅ°°Å³ª °¨¼Ò½ÃŲ ÈÄ Á¶°Ç½Ä°ú ºñ±³ÇÏ¿© Á¶°Ç½Ä ÀÌ ¼º¸³ÇÏ¸é ¹Ýº¹ ¸í·É¹®À» °è¼Ó ½ÇÇàÇÏ°í Á¶°Ç½ÄÀÌ ¼º¸³ÇÏÁö ¾ÊÀ¸¸é for·çÇÁ¸¦ ¹þ¾î³´Ù.
<¼ø¼µµ>
|
|
|
|
|
|
|
|
|
(Ãʱâ½Ä) |
½Ä 1 |
|
|
|
||||
|
|
|
||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
F |
|
|
(Á¶°Ç½Ä) |
|
½Ä 2 |
|
|
|
|||
|
|
|
|
|
||||
|
|
|
|
|
|
|
´ÙÀ½ ¹®Àå; |
|
|
|
|
|
T |
|
|
||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
¹Ýº¹ ¸í·É¹® |
|
|
|
|||
|
|
|
|
|
||||
|
|
|
|
|
|
|
|
|
(·çÇÁ½Ä) |
½Ä 3 |
|
|
|
||||
|
|
|
||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
¡º½Ç½À 3-08¡»¿¹Á¦ ÇÁ·Î±×·¥
/*----------------------------------------------------------------------------------------------
* c3-08.c : for¹® ¿¬½À
*---------------------------------------------------------------------------------------------*/
main( )
{
int n;
for ( n=1 ; n<=10; n=n+1)
printf("%3d",n);
}
¢Ñ ½ÇÇà °á°ú
c>c3-08
1 2 3 4 5 6 7 8 9 10
¡º½Ç½À 3-09¡»for¹®À» À߸ø »ç¿ëÇÑ ¿¹
/*----------------------------------------------------------------------------------------------
* c3-09.c : for¹®À» À߸ø »ç¿ëÇÑ ¿¹
*---------------------------------------------------------------------------------------------*/
main( )
{
int n;
for ( n=11 ; n>1; n=n+1)
printf("%3d",n);
}
¢Ñ ½ÇÇà °á°ú
c>c3-08
11 12 13 14 15 16 17 18 19 20
21 22 23 24 25 26 27 28 29 30
31 32 ^c
¡¶¿¬½À 13¡·ÇÁ·Î±×·¥ <c3-09.c>¸¦ ½ÇÇà½ÃÅ°¸é ½ÇÇà °á°ú¿Í °°ÀÌ Ãâ·ÂµÇ´Â ÀÌÀ¯¸¦ ¼³¸íÇÏ¿© ¶ó.
¡¶¿¬½À 14¡·¾Æ·¡ÀÇ Ãâ·Â °á°ú¿Í °°ÀÌ 1ºÎÅÍ 10±îÁöÀÇ ÇÕÀ» °è»êÇÏ¿© Ãâ·ÂÇÏ´Â ÇÁ·Î±×·¥À» ÀÛ¼ºÇÏ¿©¶ó.
¢Ñ ½ÇÇà °á°ú
sum = 55
¡¶¿¬½À 15¡·1ºÎÅÍ 10±îÁöÀÇ Á¤¼ö Áß È¦¼ö¸¸À» Ãâ·ÂÇÏ´Â ÇÁ·Î±×·¥À» ÀÛ¼ºÇÏ¿©¶ó.
¢Ñ ½ÇÇà °á°ú
1 3 5 7 9
¡¶¿¬½À 16¡·1ºÎÅÍ 100±îÁöÀÇ Á¤¼ö Áß¿¡¼ Ȧ¼öÀÇ ÇÕÀ» °è»êÇÏ¿© Ãâ·ÂÇÏ´Â ÇÁ·Î±×·¥À» ÀÛ ¼ºÇÏ¿©¶ó.
¡¶¿¬½À 17¡·¾Æ·¡ÀÇ ¼ºÀû µ¥ÀÌÅ͸¦ Å°º¸µå·Î ÀÔ·ÂÇÏ¿© 90Á¡ÀÌ»óÀÇ ÇлýÀÇ ¼ö¿Í 90Á¡ ¹Ì¸¸ ÀÇ Çлý¼ö¸¦ Ãâ·ÂÇÏ´Â ÇÁ·Î±×·¥À» ÀÛ¼ºÇÏ¿©¶ó.
85, 68, 90, 93, 88, 73, 96, 97 |
2) º¹ÇÕ for¹® (nested for¹®)
ÇÁ·Î±×·¥ÀÇ ÀÛ¼º °úÁ¤¿¡¼ for¹®¿¡ ÀÇÇÏ¿© ¹Ýº¹ 󸮵Ǵ ³»¿ëÀ» ´Ù½Ã ¹Ýº¹ ½ÃÄÑ¾ß ÇÒ °æ¿ì°¡ Àִµ¥ ÈçÈ÷ Àִµ¥ ÀÌ °æ¿ì¿¡´Â for·çÇÁ¸¦ ´Ù½Ã for¹®À¸·Î ¹Ýº¹½ÃÅ°¸é µÇ´Âµ¥ ÀÌ·¯ÇÑ ÇüÅÂÀÇ for¹®À» º¹ÇÕ for¹®À̶ó°í ÇÑ´Ù.
¡º½Ç½À 3-10¡»º¹ÇÕ for¹®ÀÇ ¿¹Á¦ ÇÁ·Î±×·¥ 1
/*----------------------------------------------------------------------------------------------
* c3-10.c : º¹ÇÕ for¹® ¿¬½À(1)
*---------------------------------------------------------------------------------------------*/
main( )
{
int i, j;
for ( i=1 ; i<=3; i=i+1) {
for ( j=1 ; i<=10; j=j+1)
printf("*");
printf("\n");
}
}
¢Ñ ½ÇÇà °á°ú
c>c3-10
**********
**********
**********
¡¶¿¬½À 18¡·¾Æ·¡¿Í °°Àº ±×¸²À» Ãâ·ÂÇÏ´Â ÇÁ·Î±×·¥À» ÀÛ¼ºÇÏ¿©¶ó.
¢Ñ ½ÇÇà °á°ú
**********
**********
**********
**********
**********
¡¶¿¬½À 17¡·¾Æ·¡¿Í °°Àº ±×¸²À» Ãâ·ÂÇÏ´Â ÇÁ·Î±×·¥À» ÀÛ¼ºÇÏ¿©¶ó.
¢Ñ ½ÇÇà °á°ú
*
**
***
****
*****
¡¶¿¬½À 18¡·¾Æ·¡¿Í °°Àº ±×¸²À» Ãâ·ÂÇÏ´Â ÇÁ·Î±×·¥À» ÀÛ¼ºÇÏ¿©¶ó.
¢Ñ ½ÇÇà °á°ú
*
***
*****
*******
*********
***********
¡º½Ç½À 3-11¡»º¹ÇÕ for¹®ÀÇ ¿¹Á¦ ÇÁ·Î±×·¥ 2
/*----------------------------------------------------------------------------------------------
* c3-11.c : º¹ÇÕ for¹® ¿¬½À(2)
*---------------------------------------------------------------------------------------------*/
main( )
{
int i, j, k;
for ( i=0 ; i<=9; i++)
for ( j=0 ; i<=9; j++)
for ( k=0 ; k<=9; k++)
if (100*i+10*j+k == i*i*i+j*j*j+k*k*k)
printf("%d %d %d\n", i,j,k);
}
¢Ñ ½ÇÇà °á°ú
c>c3-11
0 0 0
0 0 1
1 5 3
3 7 0
3 7 1
4 0 7
¡¶¿¬½À 21¡·Á÷°¢ »ï°¢ÇüÀÇ ¼¼º¯ÀÇ ±æÀÌ°¡ a, b, c¶ó°í Çϸé c^2 + a^2ÀÇ ½ÄÀÌ ¼º¸³ÇÑ´Ù. ºøº¯ cÀÇ °ªÀÌ 100ÀÌÇÏÀÎ °æ¿ì¿¡ À§ ½ÄÀ» ¸¸Á·ÇÏ´Â ¸ðµç¼ö(a, b, c)¸¦ Ãâ·ÂÇÏ´Â ÇÁ·Î±×·¥À» ÀÛ¼ºÇÏ¿©¶ó.
9. Áõ°¡ ¿¬»êÀÚ¿Í °¨¼Ò ¿¬»êÀÚ
Áõ°¡ ¿¬»êÀÚ ++¿Í °¨¼Ò ¿¬»êÀÚ --´Â ÇÇ¿¬»êÀÚ¸¦ Çϳª¸¸ ÃëÇÒ ¼ö ÀÖ´Â ´ÜÇ× ¿¬»êÀڷμ ÇÇ¿¬»êÀÚ·Î ¼ö½ÄÀÌ »ç¿ëµÉ ¼ö ¾ø´Ù.
1) Áõ°¡ ¿¬»êÀÚ(++)
Áõ°¡ ¿¬»êÀÚ´Â º¯¼öÀÇ °ªÀ» 1¸¸Å Áõ°¡ ½Ãų¶§ »ç¿ëÇÏ´Â ¿¬»êÀÚÀÌ´Ù.
(1)ÀüÀ§Çü Áõ°¡ ¿¬»êÀÚ --- Áõ°¡½Ãų º¯¼ö ¾Õ¿¡ ++¸¦ Ç¥½ÃÇÑ ÇüÅ·μ ÀüÀ§ÇüÀº º¯¼öÀÇ °ªÀ» ¸ÕÀú 1¸¸Å Áõ°¡½ÃŲ ´ÙÀ½¿¡ »ç¿ëÇÑ´Ù.
[º¸±â] ++n; /* n¿¡ 1À» ´õÇÑ ´ÙÀ½¿¡ ó¸®ÇÑ´Ù. */
(2)ÈÄÀ§Çü Áõ°¡ ¿¬»êÀÚ --- Áõ°¡½Ãų º¯¼ö µÚ¿¡ ++¸¦ Ç¥½ÃÇÑ ÇüÅ·μ ÈÄÀ§ÇüÀº º¯¼öÀÇ ÇöÀç°ªÀ» ±×´ë·Î »ç¿ëÇÑ ÈÄ¿¡ 1¸¸Å Áõ°¡ ½ÃŲ´Ù.
[º¸±â] n++; /*¸ÕÀú ó¸®ÇÑ ´ÙÀ½¿¡ n¿¡ 1À» ´õÇÑ´Ù.*/
2) °¨¼Ò ¿¬»êÀÚ(--)
(1)ÀüÀ§Çü °¨¼Ò ¿¬»êÀÚ --- °¨¼Ò½Ãų º¯¼ö ¾Õ¿¡ --¸¦ Ç¥½ÃÇÑ ÇüÅ·μ ÀüÀ§ÇüÀº º¯¼öÀÇ °ª À» ¸ÕÀú 1¸¸Å °¨¼Ò½ÃŲ ´ÙÀ½¿¡ »ç¿ëÇÑ´Ù.
[º¸±â] --n; /*n¿¡¼ 1À» »« ´ÙÀ½¿¡ ó¸®ÇÑ´Ù */
(2)ÈÄÀ§Çü °¨¼Ò ¿¬»êÀÚ --- °¨¼Ò½Ãų º¯¼ö µÚ¿¡ --¸¦ Ç¥½ÃÇÑ ÇüÅ·μ ÈÄÀ§ÇüÀº º¯¼öÀÇ Çö Àç°ªÀ» ±×´ë·Î »ç¿ëÇÑ ÈÄ¿¡ 1¸¸Å °¨¼Ò½ÃŲ´Ù.
[º¸±â] n--; /*¸ÕÀú ó¸®ÇÑ ´ÙÀ½¿¡ n¿¡¼ 1À» »«´Ù. */
¡º½Ç½À 3-12¡»¿¹Á¦ ÇÁ·Î±×·¥
/*----------------------------------------------------------------------------------------------
* c3-12.c : Áõ°¡ ¿¬»êÀÚ¿Í °¨¼Ò ¿¬»êÀÚÀÇ »ç¿ë ¿¹
*---------------------------------------------------------------------------------------------*/
main( )
{
int n=0;
printf("n = %d\n, ++n); /* n¿¡ 1À» ´õÇÑ ÈÄ ±×°á°ú¸¦ Ãâ·Â */
printf("n = %d\n, n++); /* nÀÇ °ªÀ» Ãâ·ÂÇÑ ÈÄ n¿¡ 1À» ´õÇÔ */
printf("n = %d\n, n); /* ÇöÀç nÀÇ °ªÀ» Ãâ·Â */
printf("n = %d\n, --n); /* n¿¡ 1À» »«ÈÄ ±×°á°ú¸¦ Ãâ·Â */
printf("n = %d\n, n--); /* nÀÇ °ªÀ» Ãâ·ÂÇÑ ÈÄ n¿¡¼ 1À» » */
printf("n = %d\n, n); / * ÇöÀçÀÇ nÀÇ °ªÀ» Ãâ·Â */
}
¢Ñ ½ÇÇà °á°ú
c>c3-12
n = 1
n = 1
n = 2
n = 2
n = 0
n = 0
¡¶¿¬½À 22¡·¾Æ·¡ µÎ ÇÁ·Î±×·¥ÀÇ ½ÇÇà °á°ú¸¦ ³ªÅ¸³»¾î¶ó. ¸¸ÀÏ ½ÇÇà °á°ú°¡ ¼·Î Ʋ¸®´Ù ¸é ±× ÀÌÀ¯´Â ¹«¾ùÀΰ¡ ¼³¸íÇÏ¿©¶ó.
[ÇÁ·Î±×·¥1]
main( )
{
int i, n=0, sum=0;
for (i=0;i<10;i++)
sum=sum + ++n;
printf("sum=%2d\n",sum);
}
[ÇÁ·Î±×·¥2]
main( )
{
int i, n=0, sum=0;
for (i=0;i<10;i++)
sum=sum + n++;
printf("sum=%2d\n",sum);
}
¡¶¿¬½À 23¡·¾Æ·¡ ¹®ÀåÀ» »çÄ¢ ¿¬»êÀÚ¸¸À» »ç¿ëÇÑ ´ëÀÔ½ÄÀ¸·Î ¹Ù²Ù¾î Ç¥½ÃÇÏ¿©¶ó
sum=sum + n++;
¡¶¿¬½À 24¡·x=3À϶§ ¾Æ·¡ÀÇ ´ëÀÔ½ÄÀ» ó¸®ÇÑ ÈÄ ans¿¡ ±â¾ïµÇ´Â °ªÀº ?
ans = x / 2 + 7 * ( 1 + x++ );
¡¶¿¬½À 25¡·x =10À϶§ ¾Æ·¡ ¹®ÀåÀÇ ½ÇÇà °á°ú´Â ?
printf("x = %d, x*x++ = %d", x, x*x++);
10. ´©Àû ´ëÀÔ ¿¬»êÀÚ
´©Àû ´ëÀÔ ¿¬»êÀÚ´Â ´ëÀÔ ¿¬»êÀÚÀÇ Ç¥ÇöÀ» ¾à¼úÇÑ ÇüÅ·Π´©Àû ġȯ ¿¬»êÀÚ¶ó°íµµ ÇÏ¸ç ±× Á¾·ù¿Í Àǹ̴ ´ÙÀ½°ú °°´Ù.
[º¸±â] ´©Àû ´ëÀÔ ¿¬»êÀÚÀÇ Á¾·ù
¿¬»êÀÚ |
»ç ¿ë ¿¹ |
ÀÇ ¹Ì |
ÇØ ¼³ |
+= -= *= /= %= |
a+=b a-=b a*=b a/+b a%=b |
a=a+b a=a-b a=a*b a=a/b a=a%b |
a+bÀÇ °ªÀ» a¿¡ ±â¾ï a-bÀÇ °ªÀ» a¿¡ ±â¾ï a*bÀÇ °ªÀ» a¿¡ ±â¾ï a/bÀÇ °ªÀ» a¿¡ ±â¾ï a%bÀÇ °ªÀ» a¿¡ ±â¾ï |
㽬 ++x´Â x+=1°ú °°°í --x´Â x-=1°ú °°À¸¸ç y*=2*x+20Àº y=y*(2*x+20)°ú °°´Ù.
¡º½Ç½À 3-13¡»¿¹Á¦ ÇÁ·Î±×·¥
/*----------------------------------------------------------------------------------------------
* c3-13.c : ´©Àû ´ëÀÔ ¿¬»êÀÚÀÇ »ç¿ë¿¹
*---------------------------------------------------------------------------------------------*/
main( )
{
int i, sum=0;
for (i=1;i<=10;i++)
sum+=i;
printf("sum = %d\n", sum);
}
¢Ñ ½ÇÇà °á°ú
c>c3-13
sum = 55
¡¶¿¬½À 26¡·Á¤¼ö nÀ» ÀÔ·ÂÇÏ¿© n!(1*2*3* *n)ÀÇ °ªÀ» ´ÙÀ½°ú °°ÀÌ Ãâ·ÂÇϵµ·Ï ÇÁ·Î±× ·¥À» ÀÛ¼ºÇÏ¿©¶ó.
¢Ñ ½ÇÇà °á°ú
n=? 5
1*2*3*4*5 = 120
¡Ø nÀÇ °ªÀÌ ¾ó¸¶À϶§ overflow°¡ ¹ß»ýÇϴ°¡ °ü½ÉÀÖ°Ô »ìÆ캸ÀÚ.
¡¶¿¬½À 27¡·µÎ °³ÀÇ Á¤¼ö i¿Í j¸¦ ÀÔ·ÂÇÏ¿© iºÎÅÍ j±îÁöÀÇ ÇÕÀ» ±¸ÇÏ¿© Ãâ·ÂÇÏ´Â ÇÁ·Î±×·¥ À» ÀÛ¼ºÇÏ¿©¶ó.
¢Ñ ½ÇÇà °á°ú ¢Ñ ½ÇÇà °á°ú
i , j = ? 1,100 i , j = ? 11,20
1ºÎÅÍ 100±îÁöÀÇ ÇÕ = 5050 11ºÎÅÍ 20±îÁöÀÇ ÇÕ = 155
¡¶¿¬½À 28¡·1ºÎÅÍ 10±îÁöÀÇ ¼¼Á¦°ö°ª(1^3, 2^3, 3^3 10^3)À» ±¸ÇÏ¿© Ãâ·ÂÇÏ´Â ÇÁ·Î ±×·¥À» ÀÛ¼ºÇÏ¿©¶ó.
¢Ñ ½ÇÇà °á°ú
n n^3
1 1
2 8
3 27
4 64
5 125
6 216
7 343
8 512
9 729
10 1000
¡¶¿¬½À 29¡·Å°º¸µå·Î Á¤¼ö nÀ» ÀÔ·ÂÇÏ¿© n´ÜÀÇ ³»¿ëÀ» Ãâ·ÂÇÏ´Â ÇÁ·Î±×·¥À» ÀÛ¼ºÇϽÿÀ.
¢Ñ ½ÇÇà °á°ú
¸î´Ü = ? 8
<<8´Ü>>
8 * 1 = 8
8 * 2 = 16
8 * 3 = 24
8 * 4 = 32
¢°
¡¶¿¬½À 30¡·Á¤¼ö nÀ» ÀÔ·ÂÇÏ¿© ´ÙÀ½ ¼ö½ÄµéÀÇ nÇ×±îÁöÀÇ ÇÕÀ» °è»êÇÏ¿© Ãâ·ÂÇÏ´Â ÇÁ·Î±× ·¥À» ÀÛ¼ºÇÏ¿©¶ó.
1) 1 + 4 + 7 + 10 + 13 + + n
2) 1 + (1+2) + (1+2+3) + .......+ ( 1+2+3 +n)
¡¶¿¬½À 31¡·nÀÇ °ªÀ» Å°º¸µå·Î ÀÔ·ÂÇÏ¿© 1ºÎÅÍ n±îÁöÀÇ ¼ö Áß 2, 3, 4·Î ³ª´©¾î Áö´Â ¼ö ¸¦ ã¾Æ Ãâ·ÂÇÏ´Â ÇÁ·Î±×·¥À» ÀÛ¼ºÇÏ¿©¶ó.
¢Ñ ½ÇÇà °á°ú
n = ? 100
12 24 36 48 60 72 84 96
¡¶¿¬½À 32¡·µÎ °³ÀÇ Á¤¼ö i¿Í j¸¦ ÀÔ·ÂÇÏ¿© iºÎÅÍ j±îÁöÀÇ 3ÀÇ ¹è¼öÀÇ °¹¼ö¿Í ±× ÇÕÀ» ±¸ÇÏ ¿© Ãâ·ÂÇÏ´Â ÇÁ·Î±×·¥À» ÀÛ¼ºÇÏ¿©¶ó.
¢Ñ ½ÇÇà °á°ú 1 ¢Ñ ½ÇÇà °á°ú 2
i , j = 1,10 i , j = 100,120
3ÀÇ ¹è¼öÀÇ °³¼ö = 3 3ÀÇ ¹è¼öÀÇ °³¼ö = 7
3ÀÇ ¹è¼öÀÇ ÇÕ = 18 3ÀÇ ¹è¼öÀÇ ÇÕ = 777
¡¶¿¬½À 33¡·¾Æ·¡ÀÇ ½ÇÇà °á°ú¿Í °°ÀÌ ±¸±¸´Ü Å×À̺íÀ» Ãâ·ÂÇÏ´Â ÇÁ·Î±×·¥À» ÀÛ¼ºÇÏ¿©¶ó.
¢Ñ ½ÇÇà °á°ú
-------------------------------------------
±¸ ±¸ ´Ü Å× ÀÌ ºí
--------------------------------------------
2 4 6 8 10 12 14 16 18
3 6 9 12 15 81 21 24 27
4 8 12 16 20 24 28 32 36
5 10 15 20 25 30 35 40 45
6 12 18 24 30 36 42 48 54
7 14 21 28 35 42 49 56 63
8 16 24 32 40 48 56 64 72
9 18 27 36 45 54 63 72 81
-------------------------------------------
¡¶¿¬½À 34¡·¾Æ·¡ ¼ö½ÄÀ» ¸¸Á·ÇÏ´Â a¿Í bÀÇ °ªÀ» ²²»êÇÏ¿© Ãâ·ÂÇÏ´Â ÇÁ·Î±×·¥À» ÀÛ¼ºÇÏ¿© ¶ó. a b
¢Ñ ½ÇÇà °á°ú * b a
a = 1 b = 4 -------------
a = 4 b = 1 5 7 4
¡¶¿¬½À 35¡·µÎ °³ÀÇ Á¤¼ö a¿Í b¸¦ ÀÔ·ÂÇÏ¿© µÎ ¼öÀÇ ÃÖ´ë °ø¾à¼ö¸¦ ±¸ÇÏ¿© Ãâ·ÂÇÏ´Â ÇÁ·Î ±×·¥À» ÀÛ¼ºÇÏ¿©¶ó.
¢Ñ ½ÇÇà °á°ú ¢Ñ ½ÇÇà °á°ú
a , b = ? 24,36 a , b = ? 1026,405
ÃÖ´ë °ø¾à¼ö = 12 ÃÖ´ë °ø¾à¼ö = 27
¡¶¿¬½À 36¡·Å°º¸µå·Î Á¤¼öÇü ¼ýÀÚ¸¦ ÀÔ·ÂÇÏ¿© ¼Ú¼ö(prime number)Àΰ¡ ¾Æ´Ñ°¡¸¦ ÆÇÁ¤ÇÏ ´Â ÇÁ·Î±×·¥À» ÀÛ¼ºÇÏ¿©¶ó.
¢Ñ ½ÇÇà °á°ú
number = ? 13
13Àº ¼Ú¼öÀÌ´Ù.
11. while¹®
while¹®Àº ÇÁ·Î±×·¥ ³»ÀÇ ¹Ýº¹ ·çÇÁ¸¦ ó¸®Çϱâ À§ÇÑ ¶Ç ÇϳªÀÇ ¸í·É¹®ÀÌ´Ù.
while¹®ÀÇ ÀϹÝÇü½ÄÀº ´ÙÀ½°ú °°´Ù.
<ÀϹÝÇü½Ä>
while (Á¶°Ç½Ä) ¹Ýº¹·çÇÁ |
Á¶°Ç½Ä ¹Ýº¹ ¿©ºÎ¸¦ °áÁ¤Çϱâ À§ÇÏ¿© »ç¿ëµÈ´Ù. Áï, Á¶°Ç½ÄÀÌ ¼º¸³µÇ¾î¾ß while ¹® ´ÙÀ½ÀÇ ¹Ýº¹µÉ ¸í·É¹®µéÀÌ ½ÇÇàµÇ°í, Á¶°Ç½ÄÀÌ ¼º¸³µÇÁö ¾ÊÀ¸¸é while·çÇÁ¸¦ ¹þ¾î³ª while´ÙÀ½ÀÇ ¸í·É¹®À» ½ÇÇàÇÑ´Ù.
<¼ø¼µµ>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
F |
|
|
|
|
Á¶°Ç½Ä |
|
|
|
|||
|
|
|
|
|
||||
|
|
|
|
|
|
|
´ÙÀ½ ¹®Àå; |
|
|
|
|
|
T |
|
|
||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
ÇÁ·Î±×·¥¹® |
|
|
|
|||
|
|
|
|
|
||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
¡º½Ç½À 3-14¡»¿¹Á¦ ÇÁ·Î±×·¥
/*----------------------------------------------------------------------------------------------
* c3-14.c : while¹®ÀÇ ¿¬½À(1)
*---------------------------------------------------------------------------------------------*/
main( )
{
int counter = 1;
while (counter <= 5) {
printf("%3d",counter);
++counter;
}
}
¢Ñ ½ÇÇà °á°ú
c>c3-14
1 2 3 4 5
¡º½Ç½À 3-15¡»¿¹Á¦ ÇÁ·Î±×·¥
/*----------------------------------------------------------------------------------------------
* c3-15.c : while¹®ÀÇ ¿¬½À(2)
*---------------------------------------------------------------------------------------------*/
main( )
{
int cont=1, dat, sum=0;
while (cont <= 10) {
printf("data[%d]=? ",cont);
scanf("%d", &dat);
sum += dat ;
++cont;
}
printf("\nSum = %d", sum);
}
¢Ñ ½ÇÇà °á°ú
c>c3-15
data[1]= ? 1
data[2]= ? 2
data[3]= ? 3
data[4]= ? 4
data[5]= ? 5
data[6]= ? 6
data[7]= ? 7
data[8]= ? 8
data[9]= ? 9
data[10]= ? 10
Sum = 55
¡¶¿¬½À 37¡·for¹®°ú while¹®À» ºñ±³ ¼³¸íÇÏ¿©¶ó.
¡¶¿¬½À 38¡·¾Æ·¡ÀÇ ½ÇÇà °á°ú¿Í °°ÀÌ 5ºÎÅÍ 10±îÁöÀÇ Á¤¼ö¸¦ °Å²Ù·Î Ãâ·ÂÇÏ´Â ÇÁ·Î±×·¥À» while¹®À» »ç¿ëÇÏ¿© ÀÛ¼ºÇÏ¿©¶ó.
¢Ñ ½ÇÇà °á°ú
10 9 8 7 6 5 4 3 2 1
¡¶¿¬½À 39¡·1+2+3+ +nÀ» °è»êÇÏ¿© ÇÕÀÌ 10,000À» ÃÖÃÊ·Î ³Ñ´Â nÀÇ °ª°ú ±× ÇÕÀ» ±¸ÇÏ ¿© Ãâ·ÂÇÏ´Â ÇÁ·Î±×·¥À» ÀÛ¼ºÇÏ¿©¶ó.
¢Ñ ½ÇÇà °á°ú
1+2+3+ +141 = 10011
10000À» ÃÊ°úÇÏ´Â ¼ö = 141
¡¶¿¬½À 40¡·µÎ °³ÀÇ Á¤¼ö a¿Í b¸¦ ÀÔ·ÂÇÏ¿© µÎ ¼öÀÇ ÃÖ´ë °ø¾à¼ö¸¦ ±¸ÇÏ¿© Ãâ·ÂÇÏ´Â ÇÁ·Î ±×·¥À» ÀÛ¼ºÇÏ¿©¶ó.
¢Ñ ½ÇÇà °á°ú ¢Ñ ½ÇÇà °á°ú
a, b = ? 24,36 a, b = ? 1026,405
ÃÖ´ë °ø¾à¼ö = 12 ÃÖ´ë °ø¾à¼ö = 27
¡¶¿¬½À 41¡·Å°º¸µå·Î ÀÓÀÇÀÇ Á¤¼ö(longÇü)¸¦ ÀÔ·ÂÇÑ ÈÄ ±× ¼ýÀÚ¸¦ °Å²Ù·Î Ãâ·ÂÇÏ´Â ÇÁ·Î±× ·¥À» ÀÛ¼ºÇÏ¿©¶ó.
¢Ñ ½ÇÇà °á°ú ¢Ñ ½ÇÇà °á°ú
number = 12345 number = 578
reverse = 54321 reverse = 875
¡¶¿¬½À 42¡·n!ÀÇ °ªÀ» ±¸ÇÏ¿© Ãâ·ÂÇÏ´Â ÇÁ·Î±×·¥À» ÀÛ¼ºÇÏ¿©¶ó.
¢Ñ ½ÇÇà °á°ú ¢Ñ ½ÇÇà °á°ú
n = ? 5 n = ? 10
1*2*3*4*5 = 120 1*2*3*4*5*6*7*8*9*10 = 3628800
¡¶¿¬½À 43¡·±¸±¸´Ü Å×À̺íÀ» Ãâ·ÂÇÏ´Â ÇÁ·Î±×·¥À» ÀÛ¼ºÇÏ¿©¶ó.
12. do ~ while ¹®
for¹®À̳ª while¹®Àº Á¶°ÇÀÌ ¼º¸³µÇÁö ¾ÊÀ¸¸é ¹Ýº¹·çÇÁ¸¦ ½ÇÇà½ÃÅ°Áö ¾ÊÀ¸³ª do~while¹®Àº ÃÖ¼ÒÇÑ ÇÑ ¹øÀº ¹Ýº¹ ·çÇÁ¸¦ ½ÇÇàÇÑ´Ù. do~while¹®ÀÇ ÀÏ¹Ý Çü½ÄÀº ´ÙÀ½°ú °°´Ù.
<ÀϹÝÇü½Ä>
do { ¹Ýº¹ ·çÇÁ } while (Á¶°Ç½Ä); |
¡Ø ½ÇÇà ÀýÂ÷
1. ÀÏ´Ü {¹Ýº¹ ·çÇÁ}¸¦ ½ÇÇàÇÑ´Ù. ¹Ýº¹ ·çÇÁ´Â ´Ü¹®À̳ª º¹¹®ÀÌ ¸ðµÎ »ç¿ë µÉ ¼ö ÀÖ´Ù.
2. Á¶°Ç½ÄÀ» Æò°¡ÇÏ¿© Á¶°Ç½ÄÀÇ °ªÀÌ ÂüÀ̸é {¹Ýº¹ ·çÇÁ}¸¦ ¹Ýº¹ ½ÇÇàÇÏ°í Á¶°Ç½Ä ÀÇ °ªÀÌ °ÅÁþÀ̸é {¹Ýº¹ ·çÇÁ}¸¦ ¹þ¾î³ª ±× ´ÙÀ½ÀÇ ¹®ÀåÀ» ½ÇÇà ÇÑ´Ù.
<¼ø¼µµ>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
ÇÁ·Î±×·¥¹® |
|||
|
|
||||
|
|
|
|
|
|
T |
|
|
|
|
|
|
Á¶°Ç½Ä |
|
|||
|
|
|
|||
|
|
|
|
|
|
|
|
|
|
F |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
´ÙÀ½ ¹®Àå; |
|||
|
|
¡º½Ç½À 3-16¡»¿¹Á¦ ÇÁ·Î±×·¥
/*----------------------------------------------------------------------------------------------
* c3-16.c : do~while¹®ÀÇ ¿¬½À
*---------------------------------------------------------------------------------------------*/
main( )
{
int counter = 1;
do {
printf("%3d",counter);
counter++;
}
while (counter <= 5 );
}
¢Ñ ½ÇÇà °á°ú
c>c3-16
1 2 3 4 5
¡¶¿¬½À 44¡·¾Æ·¡ÀÇ ½ÇÇà °á°ú¿Í °°ÀÌ 5ºÎÅÍ 10±îÁöÀÇ Á¤¼ö¸¦ °Å²Ù·Î Ãâ·ÂÇÏ´Â ÇÁ·Î±×·¥À» do~while¹®À» »ç¿ëÇÏ¿© ÀÛ¼ºÇÏ¿©¶ó.
¢Ñ ½ÇÇà °á°ú
10 9 8 7 6 5
¡¶¿¬½À 45¡·1+2+3+ +nÀ» °è»êÇÏ¿© ÇÕÀÌ 10,000À» ÃÖÃÊ·Î ³Ñ´Â nÀÇ °ª°ú ±× ÇÕÀ» ±¸ÇÏ ¿© Ãâ·ÂÇÏ´Â ÇÁ·Î±×·¥À» ÀÛ¼ºÇÏ¿©¶ó.
¢Ñ ½ÇÇà °á°ú
1+2+3+ +141 = 10011
10000À» ÃÊ°úÇÏ´Â ¼ö = 141
¡¶¿¬½À 46¡·µÎ °³ÀÇ Á¤¼ö a¿Í b¸¦ ÀÔ·ÂÇÏ¿© µÎ ¼öÀÇ ÃÖ´ë °ø¾à¼ö¸¦ ±¸ÇÏ¿© Ãâ·ÂÇÏ´Â ÇÁ·Î ±×·¥À» ÀÛ¼ºÇÏ¿©¶ó.
¢Ñ ½ÇÇà °á°ú ¢Ñ ½ÇÇà °á°ú
a, b = ? 24,36 a, b = ? 1026,405
ÃÖ´ë °ø¾à¼ö = 12 ÃÖ´ë °ø¾à¼ö = 27
¡¶¿¬½À 47¡·Å°º¸µå·Î ÀÓÀÇÀÇ Á¤¼ö(intÇü)¸¦ ÀÔ·ÂÇÑ ÈÄ ±× ¼ýÀÚ¸¦ °Å²Ù·Î Ãâ·ÂÇÏ´Â ÇÁ·Î±× ·¥À» ÀÛ¼ºÇÏ¿©¶ó.
¢Ñ ½ÇÇà °á°ú ¢Ñ ½ÇÇà °á°ú
number = 12345 number = 578
reverse = 54321 reverse = 875
¡¶¿¬½À 48¡·n!ÀÇ °ªÀ» ±¸ÇÏ¿© Ãâ·ÂÇÏ´Â ÇÁ·Î±×·¥À» ÀÛ¼ºÇÏ¿©¶ó.
¢Ñ ½ÇÇà °á°ú ¢Ñ ½ÇÇà °á°ú
n = ? 5 n = ? 10
1*2*3*4*5 = 120 1*2*3*4*5*6*7*8*9*10 = 3628800
¡¶¿¬½À 49¡·while¹®°ú do~while¹®À» ºñ±³ÇÏ¿© ¼³¸íÇÏ¿©¶ó.
13. break¹®
break¹®Àº for, while, do¹® µîÀ» »ç¿ëÇÑ ¹Ýº¹ ·çÇÁ³ª switch¹®À¸·Î ºÎÅÍ ºüÁ® ³ª¿Ã¶§ »ç¿ëÇÏ´Â ¸í·É¹®À¸·Î¼, ´ÜÁö break¹®À» µÑ·¯½Ñ ·çÇÁ ¹ÛÀ¸·Î ºüÁ®³ª¿Â´Ù. ÁßøµÈ(nested) ¹Ýº¹ ·çÇÁ·ÎºÎÅÍ ºüÁ® ³ª¿À·Á¸é goto¹®À̳ª return¹®À» »ç¿ëÇÏ´Â °ÍÀÌ ¹Ù¶÷Á÷ÇÏ´Ù.
break¹®ÀÇ ÀÏ¹Ý Çü½ÄÀº ´ÙÀ½°ú °°´Ù.
<ÀϹÝÇü½Ä>
break; |
¡º½Ç½À 3-17¡»¿¹Á¦ ÇÁ·Î±×·¥
/*----------------------------------------------------------------------------------------------
* c3-17.c : break¹® ¿¬½À
*---------------------------------------------------------------------------------------------*/
main( )
{
int i ;
long factorial = 1;
printf("1");
while(1) {
i++;
if (factorial >10000000)
break;
factorial *=i;
printf("*%d",i);
}
printf(" = %ld", factorial);
}
¢Ñ ½ÇÇà °á°ú
c>c3-17
n = ? 1000
1*2*3*4*5*6*7*8*9*10*11 = 39916800
14. switch¹®
switch¹®Àº ¿©·¯°³ÀÇ ¹®Àå °¡¿îµ¥ ƯÁ¤ Á¶°ÇÀ» ¸¸Á·ÇÏ´Â ¹®ÀåÀ» ¼±ÅÃÇÏ¿© ¼öÇàÇÏ´Â ¸í·É¹®ÀÌ´Ù.
switch¹®ÀÇ ÀÏ¹Ý Çü½ÄÀº ´ÙÀ½°ú °°´Ù.
<ÀϹÝÇü½Ä>
switch ( ½Ä ) { case °ª1 : ÇÁ·Î±×·¥¹®1
[break;] case °ª2 : ÇÁ·Î±×·¥¹®2
[break;]
case °ªn : ÇÁ·Î±×·¥¹®n
[break;] default : ÇÁ·Î±×·¥¹®
[break;] }
|
㽬 1. (½Ä)ÀÇ °ª°ú °ª1, °ª2, °ªnÀ» ºñ±³ÇÏ¿© ÀÏÄ¡ÇÏ´Â °÷ÀÇ ¹®À» ½ÇÇàÇÏ°í, break¹®¿¡ ÀÇÇÏ¿© switch¹®À» ºüÁ® ³ª¿Â´Ù. ¸¸ÀÏ break¹®ÀÌ ¾øÀ¸¸é ±× ´ÙÀ½ÀÇ case¹®À» ½ÇÇà ÇÑ´Ù.
2. case °ªn ´ÙÀ½¿¡ º¹¼öÀÇ ÇÁ·Î±×·¥ ¹®ÀÌ ±â¼úµÇ¾îµµ Áß°ýÈ£·Î ¹Áö ¾Ê´Â´Ù.
3. (½Ä)ÀÇ °ª°ú ÀÏÄ¡ÇÏ´Â °ªÀÌ ¾øÀ¸¸é default¹®ÀÌ ½ÇÇàµÈ´Ù.
<¼ø¼µµ>
|
|
|
|
|
|
|
|
|
½ÄÀÇ Æò°¡ |
|
|
|
|
|
|||
|
|
|
|
|
||||
|
|
|
|
|
|
|
|
|
|
|
|
|
F |
|
|
|
|
|
°ª 1 |
|
|
|
|
|
||
|
|
|
|
|
|
|
||
|
|
|
|
|
ÇÁ·Î±×·¥¹®1 |
|
break; |
|
|
|
T |
|
|
|
|||
|
|
|
|
|
|
|
|
|
|
|
|
|
F |
|
|
|
|
|
°ª 2 |
|
|
|
|
|
||
|
|
|
|
|
|
|
||
|
|
|
|
|
ÇÁ·Î±×·¥¹®2 |
|
break; |
|
|
|
T |
|
|
|
|||
|
|
|
|
|
|
|
|
|
|
|
|
|
F |
|
|
|
|
|
°ª n |
|
|
|
|
|
||
|
|
|
|
|
|
|
||
|
|
|
|
|
ÇÁ·Î±×·¥¹®n |
|
break; |
|
|
|
T |
|
|
|
|||
|
|
|
|
|
|
|
|
|
default |
|
|
|
|
|
|||
|
|
|
|
|
||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
¡º½Ç½À 3-18¡»¿¹Á¦ ÇÁ·Î±×·¥
/*----------------------------------------------------------------------------------------------
* c3-18.c : switch¹® ¿¬½À
*---------------------------------------------------------------------------------------------*/
main( )
{
int n ;
printf("n = ? ");
scanf("%d", &n);
switch(n) {
case 1 :
printf("one\n");
break;
case 2 :
printf("two\n");
break;
case 3 :
printf("three\n");
break;
default :
printf("not found !!\n");
}
}
¢Ñ ½ÇÇà °á°ú ¢Ñ ½ÇÇà °á°ú ¢Ñ ½ÇÇà °á°ú
c>c3-18 c>c3-18 c>c3-18
n = ? 1 n = ? 3 n = ? 7
one three not found !!
¡¶¿¬½À 50¡·´ÙÀ½ÀÇ Á¶°ÇÀ» ¸¸Á·ÇÏ´Â ÇÁ·Î±×·¥À» ÀÛ¼ºÇÏ¿©¶ó.
<Á¶°Ç> 1. Å°º¸µå·Î nÀÇ °ªÀ» ÀÔ·Â ¹Þ´Â´Ù.
2. ¾Æ·¡ÀÇ ½ÇÇà °á°ú¿Í °°ÀÌ nÀÇ °ª¿¡ µû¶ó °¢±â ´Ù¸¥ ¸ð¾çÀ»
Ãâ·ÂÇÑ´Ù.
¢Ñ ½ÇÇà °á°ú ¢Ñ ½ÇÇà °á°ú ¢Ñ ½ÇÇà °á°ú ¢Ñ ½ÇÇà °á°ú
n = ? 1 n = ? 2 n = ? 3 n = ? 4
* * * **********
** ** *** ********
*** *** ***** *****
**** **** ******* ***
***** ***** ********* *
¡¶¿¬½À 50¡·Å°º¸µå·Î ÀÓÀÇ Á¤¼ö nÀ» ÀÔ·ÂÇÏ¿© n±îÁö¿¡ Æ÷ÇԵǴ ¸ðµç ¼Ú¼ö(prime number)¸¦ ã¾Æ Ãâ·ÂÇÏ¿©¶ó.
¢Ñ ½ÇÇà °á°ú
n = ? 20
>> ¼Ú¼ö ( 1~20)
2 3 5 7 11 13 17 19
15. continue¹®
continue¹®ÀÌ for, while, do¹® µîÀÇ ¹Ýº¹ ·çÇÁ¿¡ »ç¿ëµÇ¸é continue¹® ÀÌÈÄÀÇ ¹®ÀåÀ» ½º잼(skip)ÇÏ°í ·çÇÁ¸¦ ¹Ýº¹ÇÑ´Ù.(·çÇÁÀÇ Ã³À½À¸·Î µ¹¾Æ°£´Ù)
continue¹®ÀÇ ÀÏ¹Ý Çü½ÄÀº ´ÙÀ½°ú °°´Ù.
<ÀϹÝÇü½Ä>
break; |
㽬 1. while¹®À̳ª do¹®¿¡¼´Â Á¶°Ç½ÄÀ» ´Ù½Ã Á¶»çÇÏ·¯ °£´Ù.
2. for¹®¿¡¼´Â 3¹ø° ¼ö½ÄÀÎ ·çÇÁ½ÄÀ» ¼öÇàÇÑ ´ÙÀ½ µÎ¹ø°ÀÇ Á¶°Ç½ÄÀ» ÆÇ´ÜÇÏ¿© ·çÇÁ ÀÇ ¹Ýº¹ ¿©ºÎ ½ÇÇà ¿©ºÎ¸¦ °áÁ¤ÇÑ´Ù.
¡º½Ç½À 3-19¡»¿¹Á¦ ÇÁ·Î±×·¥
/*----------------------------------------------------------------------------------------------
* c3-19.c : continue¹®ÀÇ ¿¬½À
*---------------------------------------------------------------------------------------------*/
main( )
{
int n, sum ;
for (n=1; n<=20; n++ ) {
if (n%2 ==0 || n%3 ==0)
continue;
printf("%3d",n);
sum+=n;
}
printf("\nsum = %d\n",sum);
}
¢Ñ ½ÇÇà °á°ú
c>c3-19
1 5 7 11 13 17 19
sum = 73
16. goto ¹®
goto¹®Àº ÇÁ·Î±×·¥À» ½ÇÇàÇÏ´Â µµÁß¿¡ ƯÁ¤ÇÑ °÷À¸·Î ¹«Á¶°Ç ºÐ±â½Ãų ¶§ »ç¿ëÇÏ´Â ¸í·É¹®ÀÌ´Ù. ±¸Á¶ÀûÀÎ ÇÁ·Î±×·¥¿¡¼´Â ¿©·¯°³ÀÇ ÁßøµÈ ·çÇÁ¿¡¼ ¹þ¾î³ª±â À§ÇÏ¿© °¡²û »ç¿ëµÇ³ª, µÇµµ·ÏÀ̸é goto¹®ÀÇ »ç¿ëÀ» ÇÇÇÏ´Â °ÍÀÌ ÁÁ´Ù.
goto ¹®ÀÇ ÀÏ¹Ý Çü½ÄÀº ´ÙÀ½°ú °°´Ù.
<ÀϹÝÇü½Ä>
goto ·¹À̺í; |
㽬 label goto¹®¿¡ ÀÇÇØ ¹«Á¶°Ç ºÐ±âµÉ °÷À» ÁöÁ¤Çϱâ À§ÇÏ¿© ·¹À̺íÀ» »ç¿ëÇÑ´Ù.
1) ·¹À̺íÀº º¯¼öÀÇ À̸§À» ¸¸µå´Â ±ÔÄ¢¿¡ ÀÇÇÏ¿© ¸¸µç´Ù.
2) ·¹ÀÌºí µÚ¿¡´Â ¹Ýµå½Ã ÄÝ·Ð(:)À» ºÙÀδÙ.
3) ·¹À̺íÀº goto¹®°ú ºÐ±âµÇ´Â ¸í·É¹®ÀÇ ¾Õ¿¡ ±â¼úÇÑ´Ù.
¡º½Ç½À 3-20¡»¿¹Á¦ ÇÁ·Î±×·¥
/*----------------------------------------------------------------------------------------------
* c3-20.c : goto¹®ÀÇ ¿¬½À(1)
*---------------------------------------------------------------------------------------------*/
main( )
{
int i, j;
for (i=1; i<=9; i++)
for (j=1; j<=9; j++)
if (10*i+j+10*j+i == 99)
goto end;
end:
printf("%d%d + %d%d = %d\n", i,j,j,i,99);
}
¢Ñ ½ÇÇà °á°ú
c>c3-20
18 + 81 = 99
㽬 À§ ÇÁ·Î±×·¥Àº ij+ji=99¸¦ ¸¸Á·ÇÏ´Â ¼ö Áß¿¡¼ iÀÇ °ªÀÌ °¡Àå ÀûÀº °æ¿ì¸¦ Ãâ·ÂÇϱâ À§ Çؼ goto¹®À» »ç¿ëÇÑ ¿¹ÀÌ´Ù.
¡º½Ç½À 3-21¡»¿¹Á¦ ÇÁ·Î±×·¥
/*----------------------------------------------------------------------------------------------
* c3-21.c : goto¹®ÀÇ ¿¬½À(2)
*---------------------------------------------------------------------------------------------*/
main( )
{
int x, i=1, sum=0;
while (1) {
printf("data %d = ? ", i);
scanf("%d", &x);
if (x<=0) goto end;
sum +=x;
i++;
}
end:
printf("\nsum = %d", sum);
}
¢Ñ ½ÇÇà °á°ú
c>c3-21
data 1 = ? 10
data 2 = ? 20
data 3 = ? 30
data 4 = ? 40
data 5 = ? 50
data 6 = ? 0
sum = 150
¡¶¿¬½À 52¡·¾Æ·¡ÀÇ ¼ö½ÄÀ» ¸¸Á·ÇÏ´Â a¿Í bÀÇ °ªÀ» ¸ðµÎ Ãâ·ÂÇÏ´Â ÇÁ·Î±×·¥À» ÀÛ¼ºÇÏ¿©¶ó.
a b
+ b a
-------------
8 8
¡¶¿¬½À 53¡·´ÙÀ½ ÇÁ·Î±×·¥ÀÇ ½ÇÇà °á°ú´Â ?
main( )
{
int i, sum=0;
for (i=1; i<=10; i++)
if (i%3==0 || i%5==0)
continue;
else
sum += i
printf("sum = %d ", sum);
}
¡¶¿¬½À 54¡·1ºÎÅÍ 100±îÁöÀÇ Á¤¼ö Áß¿¡¼ 3ÀÇ ¹è¼öÀ̰ųª 5ÀÇ ¹è¼ö ¶Ç´Â 7ÀÇ ¹è¼ö°¡ ¾Æ´Ñ ¼öÀÇ °³¼ö¿Í ±× ÇÕÀ» Ãâ·ÂÇÏ´Â ÇÁ·Î±×·¥À» ÀÛ¼ºÇÏ¿©¶ó.
㽗 ÁÁÀº ÇÁ·Î±×·¥ÀÇ Æò°¡±âÁØ
¡Û °ú°Å 1) ±â¾ï ÀåÄ¡¸¦ Àû°Ô »ç¿ëÇÏ´Â ÇÁ·Î±×·¥
2) ¼öÇà ½Ã°£ÀÌ ÂªÀº ÇÁ·Î±×·¥
¡Þµû¶ó¼ ÇÁ·Î±×·¥ÀÌ ³ÇØÇÏ¿© À¯Áö º¸¼ö°¡ ¾î·Á¿ü´Ù.
¡Û ÇöÀç 1) ¿À·ù°¡ ¾ø´Â ÇÁ·Î±×·¥
2) ÀÌÇØÇϱ⠽¬¿î ÇÁ·Î±×·¥
3) ½±°Ô ¼öÁ¤ÀÌ °¡´ÉÇÑ ÇÁ·Î±×·¥
4) È¿À²¼ºÀÌ ³ôÀº ÇÁ·Î±×·¥
¡ÞÁï ´©±¸³ª ½±°Ô ÀÌÇØÇÏ°í, ½Å·Ú¼ºÀÌ ³ôÀ» »Ó¸¸ ¾Æ´Ï¶ó ´Ù¸¥ ÇÁ·Î±×·¥°úÀÇ ¿¬°ü °ü°è(interface)°¡ ´õ¿í Áß¿ä½Ã µÈ´Ù.
㽗 ±¸Á¶Àû ÇÁ·Î±×·¥(ÁÁÀº ÇÁ·Î±×·¥)ÀÇ ±¸ºñ ¿ä°Ç
1. ½ÃÀÛÇÏ´Â °÷ÀÌ ÇÑ°÷ »ÓÀ̾î¾ß ÇÑ´Ù. (one entry point)
2. ³¡³ª´Â °÷ÀÌ ÇÑ °÷ »ÓÀ̾î¾ß ÇÑ´Ù. (one exit point)
3. ½ÇÇàµÇÁö ¾Ê´Â ºÎºÐÀÌ Æ÷ÇÔ µÇ¾î¼´Â ¾ÈµÈ´Ù. (no dead code)
4. ¹«ÇÑ ¹Ýº¹À» Æ÷ÇÔÇÏÁö ¾Ê¾Æ¾ß ÇÑ´Ù. (no infinite loop)
㽗 ±¸Á¶Àû ÇÁ·Î±×·¥ÀÇ Á¦¾î ±¸Á¶.
1. ¼øÂ÷ Á¦¾î ±¸Á¶(sequence) ÇϳªÇϳªÀÇ ¸í·É󸮸¦ ¼ø¼´ë·Î ½ÇÇàÇϵµ·ÏÇÏ´Â °ÍÀ» ¸»Çϸç, °¡Àå ±âº»ÀûÀÎ ±¸Á¶ÀÌ´Ù.
½ÃÀÛ |
|
A ÇÁ·Î¼¼½º |
|
B ÇÁ·Î¼¼½º |
|
³¡ |
|
|
|
2. Á¶°Ç Á¦¾î ±¸Á¶(choice) if~else±¸Á¶¶ó°íµµ Çϸç ƯÁ¤ Á¶°ÇÀÇ ÆÇ´Ü¿¡ ÀÇÇØ µÎ °¡Áö °æ·ÎÁß ¾î´À Çϳª¸¦ ¼±ÅÃÇϵµ·Ï ÇÏ´Â °ÍÀ» ¸»ÇÏ ¸ç ¾î´À °æ·Î¸¦ ÅÃÇÏ´õ¶óµµ ´Ù½Ã ÇÑ °÷¿¡¼ ¸¸³ªµµ·Ï
ÇÑ´Ù.
|
|
|
T |
|
A ÇÁ·Î¼¼¼ |
|
|
|
|
|
|
||
|
|
|
|
|
|
|
|
|
|
||||
|
|
|
|
|
|
|
|
|
|
u |
|
|
|
½ÃÀÛ |
|
|
condition |
|
|
|
|
|
|
³¡ |
|||
|
|
|
|
|
|
|
|
||||||
|
|
|
|
|
|
|
|
|
|
|
|
||
|
|
|
F |
|
B ÇÁ·Î¼¼¼ |
|
|
|
|
|
|
||
|
|
|
|
|
|
|
|
|
|
||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
3. ¹Ýº¹ Á¦¾î ±¸Á¶(repetition) do ~ while±¸Á¶¶ó°íµµ Çϸç ƯÁ¤ Á¶°ÇÀÌ ¸¸Á·µÇ´Â µ¿¾È ƯÁ¤ ºÎºÐÀ» °è¼Ó ¹Ýº¹Çϵµ·Ï ÇÏ´Â °ÍÀ» ¸» ÇÑ´Ù.
|
|
|
|
A ÇÁ·Î¼¼¼ |
|
|
|
|
|
|
|
||
|
|
|
|
|
|
|
|
|
|
|
|||
|
|
|
|
|
|
|
|
|
|
true |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
||
|
|
u |
|
|
|
|
|
|
|
|
|
|
|
½ÃÀÛ |
|
|
|
|
|
|
condition |
|
|
³¡ |
|||
|
|
|
|
|
|
|
false |
||||||
|
|
|
|
|
|
|
|
|
|
|
¥³. ¹è ¿
1. ¹è¿À̶õ
¹è¿À̶õ °°Àº ÇüÀÇ º¯¼öµéÀÇ Áý´ÜÀ» ¸»ÇÏ¸ç µ¥ÀÌÅ͸¦ ±â¾ï½Ãų º¯¼ö¿¡ ÀÏÀÏÀÌ À̸§À» ºÎ¿©ÇÏ´Â ´ë½Å¿¡ ´ëÇ¥ÀûÀÎ À̸§À» Á¤ÇÏ°í ÷ÀÚ¸¦ ºÙ¿© °³°³ÀÇ º¯¼ö¸¦ Á¤ÀÇ ÇÒ ¶§ »ç¿ëÇÑ´Ù.
2. 1Â÷¿ø ¹è¿
1) 1Â÷¿ø ¹è¿ÀÇ ¼±¾ð
¹è¿À» »ç¿ëÇϱâ ÀÌÀü¿¡ µ¥ÀÌÅÍÇü, ¹è¿¸í°ú Â÷¿ø, ¹è¿ÀÇ Å©±â¸¦ ¹Ì¸® ¼±¾ðÇÏ¿©¾ß ÇÑ´Ù.
2) ¹è¿ ¼±¾ðÀÇ ÀϹÝÇü½Ä
µ¥ÀÌÅÍÇü ¹è¿¸í[¿ø¼ÒÀÇ ¼ö] |
¨çµ¥ÀÌÅÍÇüÀº int, long, double, charµî°ú °°ÀÌ C¿¡¼ »ç¿ëµÇ´Â ¸ðµç µ¥ÀÌÅÍÇüÀ» ÁöÁ¤ÇÒ ¼ö ÀÖ´Ù.
¨è¹è¿¸íÀº º¯¼ö¸í Á¤ÇÏ´Â ±ÔÄ¢¿¡ ÀÇÇÏ¿© ¸¸µé¾î »ç¿ëÇÏ¸é µÈ´Ù.
¨é¿ø¼ÒÀÇ ¼ö´Â »ó¼ö³ª ¼ö½Ä¸¸À» »ç¿ëÇÒ ¼ö ÀÖ´Ù.
¨ê[ ]ÀÇ °³¼ö´Â Â÷¿øÀ» ÀǹÌÇÑ´Ù. Áï 1Â÷¿ø ¹è¿½Ã¿¡´Â [ ]¸¦ Çϳª »ç¿ëÇÑ´Ù.
[º¸±â] ¹è¿ ¼±¾ðÀÇ ¿¹
int man[100], woman[51]
3) ¹è¿ ¿ø¼Ò
[ ]¼Ó¿¡ ±â¼úÇÏ´Â ¿ø¼ÒÀÇ ¼ö´Â 0ºÎÅÍ ½ÃÀÛÇÏ´Â ¹è¿ ¿ø¼ÒÀÇ °³¼öÀÌ´Ù.
[º¸±â] ¹è¿ ¿ø¼ÒÀÇ ±¸¼º
int man[100]
man[0] |
man[1] |
man[2] |
|
man[98] |
man[99] |
ↁ1¹ø° ¿ø¼Ò (0ÀÇ ¿ø¼ÒºÎÅÍ ½ÃÀÛ) ↁ100¹ø° ¿ø¼Ò
¹è¿À» ±¸¼ºÇÏ´Â °¢°¢ÀÇ ¿ø¼Ò´Â ÷ÀÚ¸¦ »ç¿ëÇÏ¿© ±¸ºÐÇÑ´Ù. ¿¹¸¦ µé¾î
int mam[100];
°ú °°ÀÌ ¼±¾ðÇϸé man[0]´Â manÀÇ Ã¹¹ø° ¿ø¼ÒÀ̸ç, man[99]´Â 100¹ø° ¿ø¼Ò·Î¼ ¹è¿ manÀÇ ¸¶Áö¸· ¿ø¼Ò°¡ µÈ´Ù.
¡º½Ç½À 4-01¡»¿¹Á¦ ÇÁ·Î±×·¥
/*----------------------------------------------------------------------------------------------
* c4-01.c : 1Â÷¿ø ¹è¿ÀÇ »ç¿ë(1)
*---------------------------------------------------------------------------------------------*/
main( )
{
int a[5];
int index;
for (index=0; index<=4; ++index); {
printf("a[%d] = ? ", index);
scanf("%d", &a[index]);
}
for (index=0; index<=4; ++index)
printf("\na[%d] = %d", index, a[index]);
}
¢Ñ ½ÇÇà °á°ú
c>c4-01
a[0] = ? 10
a[1] = ? 20
a[2] = ? 30
a[3] = ? 40
a[4] = ? 50
a[0] = 10
a[1] = 20
a[2] = 30
a[3] = 40
a[4] = 50
¡¶¿¬½À 1¡·10°³ÀÇ Á¤¼öÇü µ¥ÀÌÅ͸¦ Å°º¸µå·Î ÀÔ·ÂÇÑ ÈÄ ±× ÇÕ°ú Æò±ÕÀ» °è»êÇÏ¿© Ãâ·ÂÇÏ ´Â ÇÁ·Î±×·¥À» ÀÛ¼ºÇÏ¿©¶ó.
¡¶¿¬½À 2¡·¾Æ·¡ÀÇ µ¥ÀÌÅ͵éÀ» 1Â÷¿ø ¹è¿¿¡ ±â¾ï½ÃŲ ÈÄ ±â¾ïµÈ ¼ø¼´ë·Î Ãâ·ÂÇÏ´Â ÇÁ·Î ±×·¥À» ÀÛ¼ºÇÏ¿©¶ó.
¡Ù µ¥ÀÌÅÍ : 43, 57, 23, 87, 95, 47, 75, 84, 59, 88
¡¶¿¬½À 3¡·¾Æ·¡ÀÇ µ¥ÀÌÅ͵éÀ» 1Â÷¿ø ¹è¿¿¡ ±â¾ï½ÃŲ ÈÄ ±â¾ïµÈ ¿ª¼øÀ¸·Î Ãâ·ÂÇÏ´Â ÇÁ·Î ±×·¥À» ÀÛ¼ºÇÏ¿©¶ó.
¡Ù µ¥ÀÌÅÍ : 43, 57, 23, 87, 95, 47, 75, 84, 59, 88
¡¶¿¬½À 4¡·1¿ùºÎÅÍ 12¿ù±îÁöÀÇ °¢ Àϼö¸¦ 1Â÷¿ø ¹è¿¿¡ ÀԷ½ÃŲ ÈÄ ¾Æ·¡ÀÇ ½ÇÇà °á°ú¿Í °°ÀÌ Ãâ·ÂÇÏ´Â ÇÁ·Î±×·¥À» ÀÛ¼ºÇÏ¿©¶ó.
¢Ñ ½ÇÇà °á°ú
1 ¿ù = 31 ÀÏ 7¿ù = 31 ÀÏ
2 ¿ù = 28 ÀÏ 8¿ù = 31 ÀÏ
3 ¿ù = 31 ÀÏ 9¿ù = 30 ÀÏ
4 ¿ù = 30 ÀÏ 10¿ù = 31 ÀÏ
5 ¿ù = 31 ÀÏ 11¿ù = 30 ÀÏ
6 ¿ù = 30 ÀÏ 12¿ù = 31 ÀÏ
1 ³â = 365 ÀÏ
¡¶¿¬½À 5¡·1¿ùºÎÅÍ 12¿ù±îÁöÀÇ °¢ Àϼö¸¦ 1Â÷¿ø ¹è¿¿¡ ÀԷ½ÃŲ ÈÄ ¾Æ·¡ÀÇ ½ÇÇà °á°ú¿Í
°°ÀÌ È¦¼ö ´Þ°ú ³¯Â¥¸¦ Ãâ·ÂÇÏ´Â ÇÁ·Î±×·¥À» ÀÛ¼ºÇÏ¿©¶ó.
¢Ñ ½ÇÇà °á°ú
1 ¿ù = 31 ÀÏ
3 ¿ù = 31 ÀÏ
5 ¿ù = 31 ÀÏ
7 ¿ù = 31 ÀÏ
9 ¿ù = 30 ÀÏ
11 ¿ù = 30 ÀÏ
4) ¹è¿°ú ¸Þ¸ð¸®
¹è¿ÀÇ °¢ ¿ø¼ÒµéÀº ¸Þ¸ð¸® ³»ÀÇ ¿¬¼ÓµÈ ¿µ¿ª¿¡ ±â¾ïµÇ¸ç ¹è¿¸íÀº ÀÌ ¿µ¿ªÀÇ ½ÃÀÛ ¹øÁö¸¦ ÀǹÌÇÑ´Ù. Áï ¹è¿¸íÀ̶õ ¾ö¹ÐÇÑ Àǹ̷Π¹è¿ÀÇ ½ÃÀÛ ¹øÁö¸¦ °¡¸®Å²´Ù°í ¸»ÇÒ ¼ö ÀÖ´Ù.
¡º½Ç½À 4-02¡»¿¹Á¦ ÇÁ·Î±×·¥
/*----------------------------------------------------------------------------------------------
* c4-02.c : 1Â÷¿ø ¹è¿ÀÇ »ç¿ë(2)
*---------------------------------------------------------------------------------------------*/
main( )
{
int i, a[11];
for (i=0; i<=10; i++) {
a[i] = i;
printf("\n&a[%2d] ==> %d, a[%2d] = %d", i, &a[i], i, a[i]);
}
printf("\n\n");
printf("¹è¿ a[0]ÀÇ ¹øÁö ==> %d\n", &a[0]);
printf("¹è¿ aÀÇ ½ÃÀÛ ¹øÁö ==> %d\n", a);
}
¢Ñ ½ÇÇà °á°ú
c>c4-02
&a[ 0] ==> 3504, a[ 0] = 0
&a[ 1] ==> 3506, a[ 1] = 1
&a[ 2] ==> 3508, a[ 2] = 2
&a[ 3] ==> 3510, a[ 3] = 3
&a[ 4] ==> 3512, a[ 4] = 4
&a[ 5] ==> 3514, a[ 5] = 5
&a[ 6] ==> 3516, a[ 6] = 6
&a[ 7] ==> 3518, a[ 7] = 7
&a[ 8] ==> 3520, a[ 8] = 8
&a[ 9] ==> 3522, a[ 9] = 9
&a[10] ==> 3524, a[10] = 10
¹è¿ a[0]ÀÇ ½ÃÀÛ ¹øÁö ==> 3504
¹è¿ aÀÇ ½ÃÀÛ ¹øÁö ==> 3504
À§ ÇÁ·Î±×·¥¿¡¼ ¾Æ·¡ÀÇ µÎ ¹®Àå¿¡¼ »ç¿ëµÈ &a[0]¿Í a´Â °°Àº Àǹ̷Π»ç¿ë µÇ¾úÀ½À» ¹Ýµå½Ã ±â¾ïÇϱ⠹ٶõ´Ù.
printf("¹è¿ aÀÇ ½ÃÀÛ ¹øÁö ==> %d\n", &a[0]);
printf("¹è¿ aÀÇ ½ÃÀÛ ¹øÁö ==> %d\n", a);
5) 1Â÷¿ø ¹è¿ÀÇ ÃʱâÈ
©± ´ëÀÔ¹®¿¡ ÀÇÇÑ ÃʱâÈ
static int a[3];
a[0]=170, a[1]=63, a[2]=96;
©² ¹è¿ ¼±¾ð½Ã ÃʱâÈ
¹è¿ ¿ø¼Ò¿¡ ÃʱⰪÀ» ´ëÀÔÇϱâ À§Çؼ´Â µ¥ÀÌÅÍÇü ¾Õ¿¡ staticÀ̶ó´Â ´Ü¾î¸¦ ±â¼úÇÑ´Ù. ±× ÀÌÀ¯´Â Á¦¥¶ÀåÀÇ Á¤Àûº¯¼ö¸¦ ¼³¸íÇÒ ¶§ ¾Ë¾Æº¸±â·Î ÇÑ´Ù.
¹è¿ÀÇ ÃʱⰪÀº ´ÙÀ½°ú °°ÀÌ { }¾È¿¡ ù¹ø° ¿ø¼ÒºÎÅÍ ÄÞ¸¶(,)·Î ±¸ºÐÇÏ¿© ±â¼úÇÑ´Ù.
static int n[10]={1,2,3,4,5,6,7,8,9,10};
¡º½Ç½À 4-03¡»¿¹Á¦ ÇÁ·Î±×·¥
/*----------------------------------------------------------------------------------------------
* c4-03.c : 1Â÷¿ø ¹è¿ÀÇ »ç¿ë(2)
*---------------------------------------------------------------------------------------------*/
main( )
{
static int n[10]={1,2,3,4,5,6,7,8,9,10};
int i, sum=0;
for (i=0; i<10; ++i)
sum+=n[i];
printf("sum = %d \n", sum);
}
¢Ñ ½ÇÇà °á°ú
c>c4-03
sum = 55
㽬 ÃʱⰪÀÇ °³¼ö¿Í ¹è¿ÀÇ Å©±â°¡ ÀÏÄ¡ÇÏÁö ¾ÊÀ» °æ¿ì
¹è¿ ¿ø¼Ò¸¦ ÃʱâÈ ÇÒ ¶§ ¹Ýµå½Ã ¸ðµç ¹è¿ ¿ø¼Ò¸¦ ÃʱâÈ ÇÒ ÇÊ¿ä´Â ¾ø´Ù.
¹è¿À» staticÀ¸·Î ¼±¾ðÇÒ °æ¿ì, ÃʱⰪÀ» ¼±¾ðµÈ ¿ø¼ÒÀÇ ¼öº¸´Ù Àû°Ô ÁöÁ¤Çϸé ÁöÁ¤ÇÑ ¿ø¼Ò¸¸ ÃʱⰪÀÌ ¼³Á¤µÇ°í ³ª¸ÓÁö ¿ø¼Ò¿¡´Â 0ÀÌ ±â¾ïµÈ´Ù. ¹Ý´ë·Î ¼±¾ðµÈ ¿ø¼ÒÀÇ ¼öº¸ ´Ù. ¸¹Àº µ¥ÀÌÅ͸¦ ÁöÁ¤ÇÏ¸é ¿À·ù°¡ ¹ß»ýÇÑ´Ù. ¸¸ÀÏ ÃʱâÄ¡¸¦ ÁöÁ¤ÇÏÁö ¾ÊÀ¸¸é ÀÚµ¿Àû À¸·Î ¸ðµç ¿ø¼ÒÀÇ °ªÀº 0À¸·Î ÃʱâÈ µÈ´Ù.
[º¸±â] ¹è¿ ¿ø¼ÒÀÇ ÃʱâÈ
static int n[10]={3,6,5}
À§¿Í °°ÀÌ ÃʱâÄ¡¸¦ ¼³Á¤Çϸé n[0]=3, n[1]=6, n[2]=5°¡ ¼³Á¤µÇ°í ³ª¸ÓÁö ¿ø¼Ò¿¡ ´Â 0ÀÌ ¼³Á¤µÈ´Ù.
¡º½Ç½À 4-04¡»¿¹Á¦ ÇÁ·Î±×·¥
/*----------------------------------------------------------------------------------------------
* c4-04.c : 1Â÷¿ø ¹è¿ÀÇ ÃʱâÈ
*---------------------------------------------------------------------------------------------*/
main( )
{
static int f[11]={0,0,1};
int i, sum=1;
for (i=3; i<=10; ++i) {
f[i] = f[i-2] + f[i-1]
sum += f[i];
}
printf(">> Fibonach's Series\n");
for (i=1; i<=10; ++i)
printf("%4d", f[i]);
printf("\nSum = %d", sum);
}
¢Ñ ½ÇÇà °á°ú
c>c4-04
>> Fibonach's Series
0 1 1 2 3 5 8 13 21 34
Sum = 88
¡¶¿¬½À 6¡·¾Æ·¡ÀÇ ±×¸²°ú °°ÀÌ ¹è¿¿¡ ÃʱâÄ¡¸¦ ºÎ¿©Ç× ÈÄ ½ÇÇà °á°úó·³ ¿ÞÁ·À¸·Î ÇÑ ÀÚ ¸®¾¿ ÀÚ¸®¸¦ À̵¿½ÃÄÑ Ãâ·ÂÇÏ´Â ÇÁ·Î±×·¥À» ÀÛ¼ºÇÏ¿©¶ó.
0 |
10 |
20 |
30 |
40 |
50 |
60 |
70 |
80 |
90 |
m[0] |
m[1] |
m[2] |
m[3] |
m[4] |
m[5] |
m[6] |
m[7] |
m[8] |
m[9] |
¢Ñ ½ÇÇà °á°ú
m[0] |
m[1] |
m[2] |
m[3] |
m[4] |
m[5] |
m[6] |
m[7] |
m[8] |
m[9] |
10 |
20 |
30 |
40 |
50 |
60 |
70 |
80 |
90 |
0 |
¡¶¿¬½À 7¡·¾Æ·¡ÀÇ µ¥ÀÌÅ͵é Áß¿¡¼ ÃÖ´ë°ª°ú ÃÖ¼Ò°ªÀ» ±¸ÇÏ¿© Ãâ·ÂÇÏ´Â ÇÁ·Î±×·¥À» ÀÛ¼ºÇÏ ¿©¶ó.
¡Ù µ¥ÀÌÅÍ : 43, 57, 23, 87, 95, 47, 75, 84, 59, 88
¢Ñ ½ÇÇà °á°ú
ÃÖ´ë°ª = 95
ÃÖ¼Ò°ª = 23
¡¶¿¬½À 8¡·n°³ÀÇ Á¤¼ö¸¦ ÀÔ·ÂÇÏ¿© ÀÔ·ÂµÈ µ¥ÀÌÅ͸¦ ºÐ·ùÇÏ¿© Ãâ·ÂÇÏ´Â ÇÁ·Î±×·¥À» ÀÛ¼ºÇÏ ¿©¶ó. ´Ü, ¹üÀ§´Â 1ºÎÅÍ 100»çÀÌ·Î Çϸç, ºÐ·ù ¹æ¹ýÀº ¾î¶°ÇÑ ¾Ë°í¸®ÁòÀ» »ç¿ë ÇÏ¿©µµ °ü°è¾ø´Ù.
¢Ñ ½ÇÇà °á°ú
°³¼ö = ? 5
data[0] = ? 5
data[1] = ? 3
data[2] = ? 7
data[3] = ? 6
data[4] = ? 2
ºÐ·ù °á°ú
2 3 5 6 7
¡¶¿¬½À 9¡·ÀÓÀÇÀÇ ³¼ö(4ÀÚ¸®¼ö)¸¦ 100°³ ¸¸µé¾î ¹è¿¿¡ ±â¾ï½ÃŲ ÈÄ ¿À¸§ Â÷¼øÀ¸·Î ºÐ·ù ÇÏ¿© °¢ ÁÙ¿¡ 10°³¾¿ Ãâ·ÂÇÏ´Â ÇÁ·Î±×·¥À» ÀÛ¼ºÇÏ¿©¶ó.
╣ ´Ü, ³¼ö´Â ¹Ýµå½Ã ¸¸µé¾î¼ »ç¿ëÇÑ´Ù.
¡¶¿¬½À 10¡·1Â÷¿ø ¹è¿À» ÀÌ¿ëÇÏ¿© ¾Æ·¡ÀÇ Ã³¸® ÀýÂ÷¿¡ µû¶ó ¼Ú¼ö(prime number)¸¦ ±¸ÇÏ ¿© Ãâ·ÂÇÏ´Â ÇÁ·Î±×·¥À» ÀÛ¼ºÇÏ¿©¶ó. ´Ü, ¼Ú¼öÀÇ ¹üÀ§´Â 1ºÎÅÍ 100±îÁö·Î ÇÑ ´Ù. Áï ¹è¿ÀÇ ¿ä¼Ò´Â 101·Î ¼±¾ðÇÑ ÈÄ¿¡ ó¸®ÇÑ´Ù.
╲ ó¸® ÀýÂ÷
1. ¹è¿ÀÇ ¸ðµç ¿ä¼Ò¿¡ 0À» ±â¾ï ½ÃŲ´Ù.
2. ÷ÀÚ°¡ 2ÀÇ ¹è¼öÀÎ ¿ä¼Ò¿¡ 1À» ±â¾ï½ÃÄÑ 2ÀÇ ¹è¼ö¸¦ Á¦°¡ÇÑ ÈÄ 2¸¦ Ã⠷½ÃŲ´Ù. Áï, ¹è¿ ¿ø¼ÒÀÇ °ªÀÌ 1À̸é Á¦°ÅµÈ °ÍÀ¸·Î »ý°¢ÇÑ´Ù.
0 |
0 |
1 |
0 |
1 |
0 |
1 |
0 |
1 |
0 |
m[0] |
m[1] |
m[2] |
m[3] |
m[4] |
m[5] |
m[6] |
m[7] |
m[8] |
m[9] |
3. ÷ÀÚ°¡ 3ÀÎ ¿ä¼Ò°¡ 1ÀÌ ¾Æ´Ï¸é ÷ÀÚ°¡ 3ÀÇ ¹è¼öÀÎ ¿ä¼Ò¿¡ 1À» ±â¾ï½ÃŲ ÈÄ 3À» Ãâ·ÂÇÑ´Ù.
0 |
0 |
1 |
1 |
1 |
0 |
1 |
0 |
1 |
1 |
m[0] |
m[1] |
m[2] |
m[3] |
m[4] |
m[5] |
m[6] |
m[7] |
m[8] |
m[9] |
4. ÀÌ»óÀÇ ÀýÂ÷¸¦ ¹Ýº¹ÇÑ´Ù.
╲ Ãâ·Â °á°ú
¹üÀ§ = ? 20
2 3 5 7 11 13 17 19
3. 2Â÷¿ø ¹è¿
2Â÷¿ø ¹è¿À̶õ 1Â÷¿ø ¹è¿À» ¿©·¯°³ °ãÃÄ ³õÀº °ÍÀ¸·Î »ý°¢ ÇÒ ¼ö ÀÖ´Ù. Áï, Çà°ú ¿ÀÇ Æò¸é ±¸Á¶¸¦ °¡Áø ¹è¿·Î »ý°¢ ÇÒ ¼ö ÀÖ´Ù.
1) 2Â÷¿ø ¹è¿ÀÇ ¼±¾ð
2Â÷¿ø ¹è¿¿¡¼µµ ¹è¿ ¿ø¼ÒµéÀ» »ç¿ëÇϱâ ÀÌÀü¿¡ µ¥ÀÌÅÍÇü, ¹è¿¸í°ú Â÷¿ø, ¹è¿ÀÇ Å©±â µîÀ» ¹Ì¸® ¼±¾ð ÇÏ¿©¾ß ÇÑ´Ù.
2) ¹è¿ ¼±¾ðÀÇ ÀϹÝÇü½Ä
µ¥ÀÌÅÍÇü ¹è¿¸í[¿ø¼ÒÀÇ ¼ö] |
¨çµ¥ÀÌÅÍÇüÀº int, long, double, charµî°ú °°ÀÌ C¿¡¼ »ç¿ëµÇ´Â ¸ðµç µ¥ÀÌÅÍÇüÀ» ÁöÁ¤ÇÒ ¼ö ÀÖ´Ù.
¨è¹è¿¸íÀº º¯¼ö¸í Á¤ÇÏ´Â ±ÔÄ¢¿¡ ÀÇÇÏ¿© ¸¸µé¾î »ç¿ëÇÏ¸é µÈ´Ù.
¨é¿ø¼ÒÀÇ ¼ö´Â »ó¼ö³ª ¼ö½Ä¸¸À» »ç¿ëÇÒ ¼ö ÀÖ´Ù.
¨ê[ ]ÀÇ °³¼ö´Â Â÷¿øÀ» ÀǹÌÇÑ´Ù. Áï 2Â÷¿ø ¹è¿½Ã¿¡´Â [ ]¸¦ µÎ°³ »ç¿ëÇÑ´Ù.
[º¸±â] 2Â÷¿ø ¹è¿ÀÇ ¼±¾ð ¿¹
int box[4][5], blue[ ][20]
3) ¹è¿ ¿ø¼Ò
[º¸±â] 2Â÷¿ø ¹è¿ÀÇ ±¸¼º
int a[4][5]
a[0][0] |
a[0][1] |
a[0][2] |
a[0][3] |
a[0][4] |
a[1][0] |
a[1][1] |
a[1][2] |
a[1][3] |
a[1][4] |
a[2][0] |
a[2][1] |
a[2][2] |
a[2][3] |
a[2][4] |
a[3][0] |
a[3][1] |
a[3][2] |
a[3][3] |
a[3][4] |
¡º½Ç½À 4-05¡»¿¹Á¦ ÇÁ·Î±×·¥
/*----------------------------------------------------------------------------------------------
* c4-05.c : 2Â÷¿ø ¹è¿ÀÇ »ç¿ë
*---------------------------------------------------------------------------------------------*/
main( )
{
static int a[3][3];
int i, j;
for(i=0;i<=2;i++)
for (j=0;j<=2;j++) {
printf("a[%d][%d] = ? ", i,j);
scanf("%d, ",&a[i][j]); }
printf("\n-----------------------------------------------");
printf("\n ¹øÈ£ ½ÅÀå üÁß °¡½¿ ");
printf("\n-----------------------------------------------\n");
for (i=0;i<=2;i++)
{ printf("%4d",i+1);
for (j=0;j<=2;j++)
printf("%6d",a[i][j]);
printf("\n"); }
printf("------------------------------\n");
}
¢Ñ ½ÇÇà °á°ú
c>c4-05
a[0][0] = ? 170
a[0][1] = ? 63
a[0][2] = ? 96
a[1][0] = ? 175 ------------------------------------
a[1][1] = ? 65 ¹øÈ£ ½ÅÀå üÁß °¡½¿
a[1][2] = ? 92 ------------------------------------
a[2][0] = ? 178 1 170 63 96
a[2][1] = ? 73 2 175 65 92
a[2][2] = ? 89 3 178 73 89
------------------------------------
4) 2Â÷¿ø ¹è¿ÀÇ ÃʱâÈ
©± ´ëÀÔ¹®¿¡ ÀÇÇÑ ÃʱâÈ
static int a[3][3];
a[0][0]=170, a[0][1]=63, a[0][2]=96;
a[1][0]=175, a[1][1]=65, a[1][2]=92;
a[2][0]=178, a[2][1]=73, a[2][2]=98;
©² Çà ´ÜÀ§·Î ÃʱâÈ
static int a[3][3]={{170, 63, 96}, {175, 65, 92}, {178, 73, 98}};
¶Ç´Â
static int a[3][3] = {
{170, 63, 96},
{175, 65, 92},
{178, 73, 98}
};
¶Ç´Â
static int a[3][3]={170, 63, 96, 175, 65, 92, 178, 73, 98};
4. ¹è¿ÀÇ Å©±â »ý·«
¹è¿ÀÇ Å©±â°¡ ÀÚÁÖ º¯°æµÇ´Â °æ¿ì¿¡´Â ¹è¿ ¼±¾ð½Ã¿¡ ¹è¿ÀÇ Å©±â¸¦ »ý·«ÇÒ ¼ö ÀÖ´Ù.
1) 1Â÷¿ø ¹è¿
static int n[ ] = { 1, 2, 3, 4, 5}; /* ¹è¿ÀÇ Å©±â´Â ÀÚµ¿ÀûÀ¸·Î 5·Î ¼³Á¤µÊ */
2) 2Â÷¿ø ¹è¿
ÇàÀÇ °³¼ö (Á¦1÷ÀÚ)´Â »ý·«ÇÒ ¼ö ÀÖÀ¸³ª ¿ÀÇ °³¼ö(Á¦2÷ÀÚ ÀÌÈÄ)´Â »ý·«ÀÌ ºÒ°¡´É ÇÏ´Ù.
static int n[ ][2]= {
{0,0},
{1,1}, {2,2}, {3,3},
{1,1}, {2,2}, {3,3},
}; /* ÀÚµ¿ÀûÀ¸·Î n[7][2]·Î ¼±¾ðµÈ´Ù. */
¡¶¿¬½À 11¡·3»ç¶÷ÀÇ ½ÅÀå, üÁß, °¡½¿ µÑ·¹ÀÇ µ¥ÀÌÅ͸¦ Çà ¿ì¼± ¼øÀ§·Î 2Â÷¿ø ¹è¿¿¡ ±â¾ï ½ÃŲ ÈÄ ½ÇÇà °á°ú¿Í °°ÀÌ Ãâ·ÂÇÏ´Â ÇÁ·Î±×·¥À» ÀÛ¼ºÇÏ¿©¶ó.
¢Ñ ½ÇÇà °á°ú
1 ¹ø = ? 170,63,96
2 ¹ø = ? 175,65,92
3 ¹ø = ? 178,73,89
------------------------------------
¹øÈ£ ½ÅÀå üÁß °¡½¿
------------------------------------
1 170 63 96
2 175 65 92
3 178 73 89
------------------------------------
°è 523 201 277
------------------------------------
¡¶¿¬½À 12¡·¾Æ·¡ÀÇ ½ÇÇà °á°ú¿Í °°ÀÌ 1ºÎÅÍ 16±îÁöÀÇ ¼ýÀÚ¸¦ ¹è¿¿¡ ±â¾ï½ÃŲ ÈÄ¿¡ °¡·Î ÀÇ ÇÕ°ú ¼¼·ÎÀÇ ÇÕ ¹× ´ë°¢¼±ÀÇ ÇÕÀ» ±¸ÇÏ¿© Ãâ·ÂÇÏ´Â ÇÁ·Î±×·¥À» ÀÛ¼ºÇÏ¿©¶ó. (´Ü, µ¥ÀÌÅÍ´Â ÀԷ½ÃÅ°Áö ¾Ê´Â´Ù.)
¢Ñ ½ÇÇà °á°ú
1 2 3 4 10
5 6 7 8 26
9 10 11 12 42
13 14 15 16 58
28 32 36 40 34
¡¶¿¬½À 13¡·5*5ÀÇ 2Â÷¿ø ¹è¿À» ÁغñÇÑ ÈÄ °¡·Î¿Í ¼¼·Î ¹× ´ë°¢¼±ÀÇ ÇÕÀÌ °°µµ·Ï 1ºÎÅÍ 25±îÁöÀÇ Á¤¼ö¸¦ ¹è¿Çϴ Ȧ¼ö ¸¶¹æÁø ÇÁ·Î±×·¥À» ÀÛ¼ºÇÏ¿©¶ó.
¢Ñ ½ÇÇà °á°ú
11 24 7 20 3
4 12 25 8 16
17 5 13 21 9
10 18 1 14 22
23 6 19 2 15
¡¶¿¬½À 14¡·4*4ÀÇ 2Â÷¿ø ¹è¿À» ÁغñÇÑ ÈÄ °¡·Î¿Í ¼¼·Î ¹× ´ë°¢¼±ÀÇ ÇÕÀÌ °°µµ·Ï 1ºÎÅÍ 16±îÁöÀÇ Á¤¼ö¸¦ ¹è¿Çϴ ¦¼ö ¸¶¹æÁø ÇÁ·Î±×·¥À» ÀÛ¼ºÇÏ¿©¶ó.
¢Ñ ½ÇÇà °á°ú
16 2 3 12
5 11 10 8
9 7 6 12
4 14 15 1
¡¶¿¬½À 15¡·¾î´À ÇбÞÀÇ ¸ðÀÇ °í»ç äÁ¡ °á°ú°¡ ¾Æ·¡ÀÇ Ç¥¿Í °°À»¶§ ÀÌ µ¥ÀÌÅ͸¦ ÀÌ¿ëÇÏ ¿© ½ÇÇà °á°ú¿Í °°Àº ¼ºÀû À϶÷Ç¥¸¦ Ãâ·ÂÇÏ´Â ÇÁ·Î±×·¥À» ÀÛ¼ºÇÏ¿©¶ó. (´Ü, ¹ø È£, ±¹¾î, ¿µ¾î, ¼öÇÐ µ¥ÀÌÅÍ´Â Å°º¸µå·Î ÀÔ·ÂÇÑ´Ù.)
¢Ñ ½ÇÇà °á°ú
2Çгâ 3¹Ý äÁ¡ °á°ú 2 - 3 ¼ºÀû À϶÷Ç¥
----+----+----+----- --------------------------------------------------
¹øÈ£|±¹¾î|¿µ¾î|¼öÇÐ ¹øÈ£ ±¹¾î ¿µ¾î ¼öÇÐ ÃÑÁ¡ Æò±Õ ¼®Â÷
1 | 70 | 85 | 92 1 70 85 92 247 82 5
2 | 65 | 70 | 73 2 65 70 73 208 69 9
3 | 95 | 85 | 70 3 95 85 70 250 83 3
4 | 96 | 85 | 80 4 96 85 80 261 87 1
5 | 90 | 80 | 64 5 90 80 64 234 78 7
6 | 73 | 65 | 78 6 73 65 78 216 72 8
7 | 64 | 54 | 80 7 64 54 80 198 66 10
8 | 90 | 80 | 85 8 90 80 85 255 85 2
9 | 67 | 90 | 93 9 67 90 93 250 83 3
10 | 73 | 85 | 87 10 73 85 87 245 82 6
---+----+----+----- ----------------------------------
ÃÑÁ¡ 783 779 802 2364 79
----------------------------------
¡¶¿¬½À 16¡·Çà·Ä a¿Í bÀÇ °öÀ» ±¸ÇÏ¿© Ãâ·ÂÇÏ´Â ÇÁ·Î±×·¥À» ÀÛ¼ºÇÏ¿©¶ó.
a= bmatrix { col { 1 # 2 # 2} lcol {5 # 4 # 5} col { 6 # 7 # 8}} |
a= bmatrix { col { 7 # 3 # 4} lcol {1 # 4 # 6} col { 6 # 7 # 3}} |
¡¶¿¬½À 17¡·¾Æ·¡ÀÇ Ç¥¸¦ º¸°í ½ÇÇà °á°ú¿Í °°ÀÌ °¢ ÅëÀÇ °ÅÁÖÀÚ, °¢ µ¿ÀÇ °ÅÁÖÀÚ, ±¸ÀÇ ÃÑ Àα¸¸¦ ±¸ÇÏ¿© Ãâ·ÂÇÏ´Â ÇÁ·Î±×·¥À» ÀÛ¼ºÇÏ¿©¶ó.
(´Ü, 3Â÷¿ø ¹è¿À» »ç¿ëÇÒ °Í)
A ±¸ |
|||||||||||
1 µ¿ |
2 µ¿ |
||||||||||
1 Åë |
2 Åë |
1 Åë |
2 Åë |
||||||||
1¹Ý |
2¹Ý |
3¹Ý |
1¹Ý |
2¹Ý |
3¹Ý |
1¹Ý |
2¹Ý |
3¹Ý |
1¹Ý |
2¹Ý |
3¹Ý |
32 |
26 |
41 |
28 |
29 |
34 |
29 |
40 |
45 |
47 |
42 |
50 |
¢Ñ ½ÇÇà °á°ú
A±¸ Àα¸ = 443 1µ¿ = 190 1Åë = 99
2Åë = 91
2µ¿ = 253 1Åë =114
2Åë =139
¥´. ¹®ÀÚ µ¥ÀÌÅÍÀÇ Ã³¸®
1. ¹®ÀÚÇüÀÇ Á¾·ù
C¾ð¾î¿¡¼´Â ¹®ÀÚ ÇüÅÂÀÇ µ¥ÀÌÅͶó ÇÏ´õ¶óµµ 1¹ÙÀÌÆ® Å©±âÀÇ ASCIIÄڵ尪À¸·Î ÀúÀåµÈ´Ù. Áï C¾ð¾î¿¡¼´Â 0~255±îÁöÀÇ ¼ýÀÚ (ASCIIÄÚµå)·Î ¹®ÀÚÇü µ¥ÀÌÅÍ°¡ ±â¾ï Àå¼Ò¿¡ ±â¾ïµÇ±â ¶§¹®¿¡ ¹®ÀÚÇü µ¥ÀÌÅ͸¦ Ãâ·ÂÇÑ´Ù´Â °ÍÀº ±â¾ïµÈ ¼öÄ¡¸¦ ¹®ÀÚÀÇ ÇüÅ·ΠÃâ·ÂÇÏ´Â °ÍÀÌ µÈ´Ù. ¹®ÀÚÇü µ¥ÀÌÅÍÀÇ Á¾·ù´Â ´ÙÀ½°ú °°´Ù.
Á¾ ·ù |
Å©±â |
ºÎÈ£ |
Çã ¿ë Ä¡ |
¿ë µµ |
char unsigned char |
1 Byte 1 Byte |
À¯ ¹« |
-128~127 0~255 |
ÀϹÝÀûÀÎ ¿µ¼ýÀÚ ±×·¡ÇÈ ¹®ÀÚ »ç¿ë |
2. ¹®ÀÚ »ó¼ö
¹®ÀÚ »ó¼ö´Â ´ÜÀÏ ÀÎ¿ë ºÎÈ£ (' ')·Î µÑ·¯ ½Î¿© ÀÖ´Â ÇϳªÀÇ ¹®ÀÚ·Î ±¸¼ºµÇ¸ç ´ëºÎºÐÀÇ ÆÛ½º³Î ÄÄÇ»ÅÍ¿¡¼´Â 1¹ÙÀÌÆ® Å©±âÀÇ ASCII Äڵ尪À¸·Î ÀúÀåµÈ´Ù. ¾ðÁ¦³ª Çü½Ä ÁöÁ¤ ¹®ÀÚ¿À» '%d'·Î Á¤ÀÇÇÏ¿© intÇüÀ¸·Î º¯È¯ÇÒ ¼ö ÀÖ´Ù.
[º¸±â] ¹®ÀÚ »ó¼öÀÇ ¿¹
' ' space(°ø¹é) '$'
'A' '='
'B' '['
'a' '"'
3. ¹®ÀÚ º¯¼ö
¹®ÀÚ º¯¼ö¶õ ¹®ÀÚ »ó¼ö(ÇϳªÀÇ ¹®ÀÚ)¸¦ ±â¾ï½ÃÅ°±â À§ÇÑ º¯¼ö¸¦ ¸»ÇÑ´Ù.
1) ¹®ÀÚ º¯¼öÀÇ ¼±¾ð ¿¹
char a, b;
char c = 'C', d = 'D'
2) ¹®ÀÚ º¯¼öÀÇ ³»¿ë Ãâ·Â
charÇü º¯¼öÀÇ °ªÀ» ¸ð´ÏÅÍ¿¡ Ç¥½ÃÇÒ ¶§¿¡´Â printf( )ÇÔ¼ö¸¦ È£ÃâÇϸç Çü½Ä ÁöÁ¤ ¹®ÀÚ¿Àº %c¸¦ »ç¿ëÇÑ´Ù.
3) ¹®ÀÚ º¯¼öÀÇ »ç¿ë
¡º½Ç½À 5-01¡»¿¹Á¦ ÇÁ·Î±×·¥
/*----------------------------------------------------------------------------------------------
* c5-01.c : ¹®ÀÚ º¯¼öÀÇ ³»¿ë Ãâ·Â(1)
*---------------------------------------------------------------------------------------------*/
main( )
{
char a, b, c;
a = 'A', b = 'B', c = '9';
printf("%c %c %c\n", a,b,c);
}
¢Ñ ½ÇÇà °á°ú
c>c5-01
A B 9
¡º½Ç½À 5-02¡»¿¹Á¦ ÇÁ·Î±×·¥
/*----------------------------------------------------------------------------------------------
* c5-02.c : ¹®ÀÚ º¯¼öÀÇ ³»¿ë Ãâ·Â(2)
*---------------------------------------------------------------------------------------------*/
main( )
{
char a = 'A', b = 'Z', c = '0', d = '9';
printf("%4c%4c%4c%4c\n", a,b,c,d); /*º¯¼ö ³»¿ë Ãâ·Â */
printf("%4d%4d%4d%4d\n", a,b,c,d); /*º¯¼ö ³»¿ëÀÇ ASCII°ª Ãâ·Â */
}
¢Ñ ½ÇÇà °á°ú
c>c5-02
A Z 0 9
65 90 48 57
¡º½Ç½À 5-03¡»¿¹Á¦ ÇÁ·Î±×·¥
/*----------------------------------------------------------------------------------------------
* c5-03.c : intÇü º¯¼öÀÇ ³»¿ëÀ» ¹®ÀÚ·Î Ãâ·Â (3)
*---------------------------------------------------------------------------------------------*/
main( )
{
char a = 65, b = 90, c = 48, d = 57;
printf("%4c%4c%4c%4c\n", a,b,c,d);
}
¢Ñ ½ÇÇà °á°ú
c>c5-03
A Z 0 9
¡¶¿¬½À 1¡·Å°º¸µå·Î ÇÑ ¹®ÀÚ¸¦ ÀÔ·ÂÇÏ¿© ±× ¹®ÀÚÀÇ ASCII ÄÚµå °ªÀ» 10Áø¼ö ÇüÅ·ΠÃâ·Â ÇÏ´Â ÇÁ·Î±×·¥À» ÀÛ¼ºÇÏ¿©¶ó.
¡¶¿¬½À 2¡· KOREA¸¦ ÇÑ ¹®ÀÚ¾¿ ¹®ÀÚº¯¼ö¿¡ ´ëÀÔÇÏ¿© KOREA¸¦ Ãâ·ÂÇÏ´Â ÇÁ·Î±×·¥À» ÀÛ ¼ºÇÏ¿©¶ó.
¡¶¿¬½À 3¡·¾Æ·¡ÀÇ ½ÇÇà °á°ú¿Í °°ÀÌ ASCII ÄÚµåÇ¥¸¦ Ãâ·ÂÇÏ´Â ÇÁ·Î±×·¥À» ÀÛ¼ºÇÏ¿©¶ó. (´Ü, ASCII ÄÚµåÀÇ ¹üÀ§´Â 32~126±îÁö·Î ÇÑ´Ù.)
¢Ñ ½ÇÇà °á°ú
| 0 1 2 3 4 5 6 7 8 9 A B C D E F
--|---------------------------------
2| ! " # $ % & ' ( ) * + , - . /
3| 0 1 2 3 4 5 6 7 8 9 : ; < = > ?
4| @ A B C D E F G H I J K L M N O
5| P Q R S T U V W X Y Z [ \ ] ^ _
6| ` a b c d e f g h i j k l m n o
7| p q r s t u v w x y z { | } ~
4. È®Àå¿
1) È®Àå¿ (escape sequence)
´ÜÀÏ ÀÎ¿ë ºÎÈ£(' ')¾È¿¡ \°¡ »ç¿ëµÇ¸é \´ÙÀ½¿¡ ÀÖ´Â ¹®ÀÚ´Â È®Àå¿·Î ÀÎÁ¤µÈ´Ù. \À» Æ÷ÇÔÇÑ È®Àå¿Àº ÇϳªÀÇ ¹®ÀÚ »ó¼ö·Î Ãë±ÞµÈ´Ù.
2) È®Àå¿ÀÇ ¿¹
È®Àå¿ |
ACSIIÄÚµå |
¹®ÀÚ |
ÀÇ ¹Ì |
\a \b \f \n \r \t \£Ü \' \" \? \ooo \xhhh \Xhhh \0 %% |
0x07 0x08 0x0c 0x0a 0x0d 0x09 0x5c 0x2c 0x22 0x3f 0ooo 0xhhh 0Xhhh 0x00 |
BEL BS FF LF CR HT £Ü ' " ? any any any null percent |
º§¼Ò¸® Back Space Form Feed Line Feed ¶Ç´Â °³Çà(new line) carriage return(º¹±Í) Horizontal Tab(¼öÆò ÅÇ) backslash single quote double quote question mark 1~3ÀÚ¸®ÀÇ 8Áø¼ö 1~3ÀÚ¸®ÀÇ 16Áø¼ö 1~3ÀÚ¸®ÀÇ 16Áø¼ö ¾Æ¹«·± µ¿ÀÛµµ ÇÏÁö¾ÊÀ½ % Ãâ·Â |
㽬 0Àº ¼ýÀÚ¸¦ ÀǹÌÇÏ°í 0´ÙÀ½ÀÇ o´Â 8Áø¼ö¸¦, x´Â 16Áø¼ö¸¦ ÀǹÌÇÑ´Ù.
3) È®Àå¿À» »ç¿ëÇÏ´Â ÀÌÀ¯
©ç¾î¶°ÇÑ ¹®ÀÚ ÄÚµå(ASCII, EBCDICµî)¸¦ »ç¿ëÇÏ´Â ÄÄÇ»ÅÍ¶óµµ ±× ±â´ÉÀÌ ÀÏÄ¡ÇÑ´Ù.
©è±âÈ£ÀûÀ¸·Î Ç¥ÇöÇϱ⠶§¹®¿¡ Ç¥ÇöÀÌ °£°áÇÏ°í Æǵ¶ÀÌ ¿ëÀÌÇÏ´Ù.
©éÁ¦¾î ¹®ÀÚ³ª Ư¼ö ¹®ÀÚ¸¦ »ðÀÔÇÒ ¼ö ÀÖ´Â À¯ÀÏÇÑ ¹æ¹ýÀ¸·Î¼ Ç¥ÇöÇÒ ¼ö ¾ø´Â Á¦¾î ÄÚ µåµîÀ» Ç¥½ÃÇϱâ À§Çؼ´Â '\'µÚ¿¡ ÇÑ°³ÀÇ È®Àå¿ ¶Ç´Â ASCIIÄڵ带 ±â¼úÇÏ¿© ¸¸µç´Ù.
<¿¹Á¦> ´ÙÀ½ ÇÁ·Î±×·¥ÀÇ ½ÇÇà°á°ú¸¦ Àû¾îº¸½Ã¿À.
1: main( )
2: {
3: int a = 66;
4: float b = 3.14159;
5: char c = 65, *s = "¾ËÆĺªÀÇ Ã¹¹®ÀÚ´Â ";
6: printf("%6d\t%-6d\n",a,a);
7: printf("%6c\t%-6c\n",a,a);
8: printf("%8.5f\t%-8.5f\n",b,b);
9: printf("%4c\t%-4c\n",c,c);
10: printf("%4d\t%-4d\n",c,c);
11: printf("\n%s%2c",s,c);
12: printf(". %s\n","³¡ÀÔ´Ï´Ù");
13: }
À§ÀÇ ÇÁ·Î±×·¥¿¡ ÀÌ»óÇÑ ºÎºÐÀ» ¹ß°ßÇÏ¿´´Â°¡?
char c = 65°¡ ¹Ù·Î ±×°ÍÀε¥, ¹®ÀÚ º¯¼ö¿¡ ´ÜÀÏ ¹®ÀÚ¸¦ ±â¾ï½Ãų ¶§´Â '·Î ¹´Â´Ù°í ÇÏ¿´´Âµ¥ ÀÌ ¹®Àå¿¡¼´Â ¹®ÀÚ º¯¼ö¿¡ ¼öÄ¡»ó¼ö¸¦ ´ëÀÔÇÏ¿´À¸´Ï ¿ÀŸ°¡ ¾Æ´Ï³Ä´Â ¿ÀÀεµ ÇßÀ» °ÍÀÌ´Ù.
c¸¦ Á¤¼öÇüÀ¸·Î ¼±¾ðÇÏ¿´´Ù¸é 65°¡ ´ëÀÔÀÌ µÈ´Ù. ÇÏÁö¸¸ Áö±ÝÀº ¹®ÀÚÇüÀ¸·Î ¼±¾ðÇÏ¿´À¸¹Ç·Î ¾Æ½ºÅ° ÄÚµåÀÇ 65¹ø ¹®ÀÚ A¸¦ ´ëÀÔÇ϶ó´Â Àǹ̰¡ µÈ´Ù.¹®ÀÚ º¯¼ö¿¡ ¼öÄ¡»ó¼ö¸¦ ´ëÀÔÇϸé C¿¡¼´Â ±× ¼öÄ¡¿¡ ÇØ´çÇÏ´Â ¾Æ½ºÅ° °ª À» ¹®ÀÚº¯¼ö¿¡ ´ëÀÔÇÏ°Ô µÈ´Ù(¹°·Ð,À̶§ ¼öÄ¡ÀǹüÀ§´Â 0 - 255 »çÀÌÀÇÁ¤¼ö°ªÀ̶ó¾ß ÇÑ´Ù).
ÄÄÇ»ÅÍ´Â ¹®ÀÚ¸¦ ¾Æ½ºÅ° ÄÚµå·Î ±â¾ïÇÏ°í ÀúÀåÇϹǷΠÀÌ Äڵ带 ¼öÄ¡·Îº¸´À³Ä, ¹®ÀÚ·Î º¸´À³Ä´Â Ãâ·ÂÇϱ⿡ ´Þ·ÁÀÖ´Ù. ´Ù½Ã ¸»Çϸé, ÀÚ·áÀÇ º¯È¯ÀÌ ÀÚÀ¯·Ó´Ù´Â °ÍÀÌ´Ù. ±×·¯¹Ç·Î Á¤¼ö¸¦ %c·Î Ãâ·ÂÇÏ¸é ±× °ªÀ» ¾Æ½ºÅ° ÄÚµå·Î ÇÏ´Â ¹®ÀÚ°¡ Ãâ·ÂµÇ¸ç, ¹®ÀÚ¸¦ %d·Î Ãâ·ÂÇÏ¸é ±× ¹®ÀÚÀÇ ¾Æ½ºÅ° Äڵ尡 Ãâ·ÂµÇ°Ô µÈ´Ù.
5. ¹®ÀÚ¿ »ó¼ö
1) ¹®ÀÚ¿ »ó¼ö(string constant)
¹®ÀÚ¿ »ó¼ö¶õ ÀÎ¿ë ºÎÈ£(" ")·Î µÑ·¯½ÎÀÎ ¹®ÀÚµéÀ» ¸»Çϸç, ¹®ÀÚ ¹è¿ »ó¼ö(character array constant)¶ó°íµµ ÇÑ´Ù. ¹®ÀÚ¿ »ó¼ö´Â ¿µ¼ýÀÚ(alphanumeric), °¢Á¾ ±âÈ£ ¹× È®Àå¿ µîÀ¸·Î ±¸¼ºÇÒ ¼ö ÀÖ´Ù.
㽬 ¹®ÀÚ ¹è¿ »ó¼ö¶ó°í ÇÏ´Â ÀÌÀ¯´Â ¹®ÀÚ ¹è¿·Î ¸ðµç ¹®ÀÚ¿À» ó¸®Çϱ⠶§¹®ÀÌ´Ù. [º¸±â] ¹®ÀÚ¿ »ó¼öÀÇ ¿¹
¹®ÀÚ¿ »ó¼ö "I'm a boy."
±¸¼º ¿ä¼Ò 'I' '\'' 'm' ' ' 'a' 'b' 'o' 'y' '.' '\0'
¹è¿ ¿ä¼Ò
I |
' |
m |
|
a |
|
b |
o |
y |
. |
\0 |
³Î Á¾·á ¹®ÀÚ(¹®ÀÚ¿ÀÇ ³¡À» Ç¥½Ã) ↀ
◀ ¹®ÀÚ¿À» ±¸¼ºÇϴ ù ¹®ÀÚºÎÅÍ ³Î Á¾·á ¹®ÀÚ(null terminator)±îÁö¸¦ ÇϳªÀÇ ¹®ÀÚ¿·Î Ãë±ÞÇÑ´Ù. Áï À§ ¿¹ÀÇ ¹®ÀÚ¿Àº 11¹ÙÀÌÆ®·Î ±¸¼ºµÈ´Ù. ³Î Á¾·á ¹®ÀÚ´Â ¹®ÀÚ¿ÀÇ ³¡ÀÓ À» ³ªÅ¸³¾ »ÓÀ̸ç, ½ÇÁ¦·Î Ãâ·Â µÇÁö´Â ¾Ê´Â´Ù.
2) ¹®ÀÚ¿ »ó¼ö ³»¿¡¼ÀÇ È®Àå¿
¡º½Ç½À 5-04¡»¿¹Á¦ ÇÁ·Î±×·¥
/*----------------------------------------------------------------------------------------------
* c5-04.c : È®Àå¿¿¡ ÀÇÇÑ Æ¯¼ö ¹®ÀÚÀÇ »ðÀÔ
*---------------------------------------------------------------------------------------------*/
main( )
{
printf("I'm a boy.\n");
printf("\"I'm a boy.\"\n");
printf("C:\\MSC\\WORK.C\n");
printf("\x42\x41\x53\111\103\n");
}
¢Ñ ½ÇÇà °á°ú
c>c5-04
I'm a boy.
"I'm a boy."
C:\MSC\WORK.C
BASIC
¡º½Ç½À 5-05¡»¿¹Á¦ ÇÁ·Î±×·¥
/*----------------------------------------------------------------------------------------------
* c5-05.c : È®Àå¿¿¡ ÀÇÇÑ Á¦¾î ¹®ÀÚÀÇ »ðÀÔ
*---------------------------------------------------------------------------------------------*/
main( )
{
int i=0;
long j;
printf("\t\t\t"); /*3¹ø° ÅÇÀ§Ä¡·Î À̵¿ */
while ( i<=9 ) {
printf("%d",i);
printf("\a"); /* º§¼Ò¸® */
printf("\b"); /* back space */
i++;
for (j=1; j<=1----; j++) ; /* ½Ã°£ Áö¿¬ : °ø¹®(;)»ç¿ë */
}
}
¡¶¿¬½À 4¡·À§ ÇÁ·Î±×·¥ÀÇ ½ÇÇà °á°ú¸¦ ¼³¸íÇÏ¿©¶ó.
¡¶¿¬½À 5¡·Ä¿¼¸¦ 2¹ø° ÅÇÀ§Ä¡·Î À̵¿½ÃŲ ÈÄ 1ºÎÅÍ 9±îÁöÀÇ ¼ýÀÚ¸¦ ¿ÞÂÊ ¹æÇâÀ¸·Î Ãâ·Â ÇÏ´Â ÇÁ·Î±×·¥À» ÀÛ¼ºÇÏ¿©¶ó.
6. ¹®ÀÚ µ¥ÀÌÅÍÀÇ ÀÔÃâ·Â
1) ÇÑ ¹®ÀÚÀÇ ÀÔÃâ·Â
¡º½Ç½À 5-06¡»¿¹Á¦ ÇÁ·Î±×·¥
/*----------------------------------------------------------------------------------------------
* c5-06.c : È®Àå¿¿¡ ÀÇÇÑ Á¦¾î ¹®ÀÚÀÇ »ðÀÔ
*---------------------------------------------------------------------------------------------*/
main( )
{
char m;
printf("¹®ÀÚ = ? ");
scanf("%c", &m); /*1¹®ÀÚ ÀÔ·Â */
printf("ÀÔ·ÂµÈ ¹®ÀÚ = %c\n", m); /*ÀÔ·ÂµÈ ¹®ÀÚ Ãâ·Â */
}
¢Ñ ½ÇÇà °á°ú ¢Ñ ½ÇÇà °á°ú
c>c5-06 c>c5-06
¹®ÀÚ = ? a 㟺 ¹®ÀÚ = ? book 㟺
ÀÔ·ÂµÈ ¹®ÀÚ = a ÀÔ·ÂµÈ ¹®ÀÚ = b
2) 2¹®ÀÚÀÇ ÀÔÃâ·Â
¡º½Ç½À 5-07¡»¿¹Á¦ ÇÁ·Î±×·¥
/*----------------------------------------------------------------------------------------------
* c5-07.c : scanf( )ÇÔ¼ö·Î 2¹®ÀÚ ÀÔ·Â
*---------------------------------------------------------------------------------------------*/
main( )
{
char a, b;
printf("¹®ÀÚ = ? ");
scanf("%c%c", &a,&b);
printf("ÀÔ·ÂµÈ ¹®ÀÚ = %c%c\n", a,b); /*ÀÔ·ÂµÈ ¹®ÀÚ Ãâ·Â */
}
¢Ñ ½ÇÇà °á°ú ¢Ñ ½ÇÇà °á°ú
c>c5-07 c>c5-07
¹®ÀÚ = ? ab 㟺 ¹®ÀÚ = ? 1234 㟺
ÀÔ·ÂµÈ ¹®ÀÚ = ab ÀÔ·ÂµÈ ¹®ÀÚ = 12
3) °ø¹éÀ» ¹«½ÃÇÑ ÀÔ·Â
¡º½Ç½À 5-08¡»¿¹Á¦ ÇÁ·Î±×·¥
/*----------------------------------------------------------------------------------------------
* c5-08.c : ¹®ÀÚ µ¥ÀÌÅÍ ÀԷ½à °ø¹éÀÇ ¹«½Ã
*---------------------------------------------------------------------------------------------*/
main( )
{
char a, b;
printf("¹®ÀÚ = ? ");
scanf("%c %c", &a,&b);
printf("ÀÔ·ÂµÈ ¹®ÀÚ = %c%c\n", a,b); /*ÀÔ·ÂµÈ ¹®ÀÚ Ãâ·Â */
}
¢Ñ ½ÇÇà °á°ú ¢Ñ ½ÇÇà °á°ú
c>c5-08 c>c5-08
¹®ÀÚ = ? ab cd 㟺 ¹®ÀÚ = ? 1 2 㟺
ÀÔ·ÂµÈ ¹®ÀÚ = ab ÀÔ·ÂµÈ ¹®ÀÚ = 12
4) scanf( )ÇÔ¼ö¸¦ ¿©·¯°³ »ç¿ëÇÑ ÀÔ·Â
¡º½Ç½À 5-09¡»¿¹Á¦ ÇÁ·Î±×·¥
/*----------------------------------------------------------------------------------------------
* c5-09.c : ¿©·¯°³ÀÇ scanf( )ÇÔ¼ö¿¡ ÀÇÇÑ ¹®ÀÚ µ¥ÀÌÅÍÀÇ ÀÔ·Â
*---------------------------------------------------------------------------------------------*/
main( )
{
char a, b, c;
printf("char = ? ");
scanf("%c", &a);
scanf("%c", &b);
scanf("%c", &c);
printf("%c%c%c\n", a,b,c);
}
¢Ñ ½ÇÇà °á°ú ¢Ñ ½ÇÇà °á°ú ¢Ñ ½ÇÇà °á°ú
c>c5-09 c>c5-09 c>c5-09
char = ? 12345 㟺 char = ? 1 2 3 㟺 char = ? 1 㟺
123 1 2 2 㟺
1
2
carriage return¿¡ ÀÇÇØ Ã¹ÄÀ¸·Î À̵¿µÈ ÈÄ Ãâ·Â ↀ
5) ¹®ÀÚ¸¦ ¹«½ÃÇÑ ÀÔ·Â
¡º½Ç½À 5-10¡»¿¹Á¦ ÇÁ·Î±×·¥
/*----------------------------------------------------------------------------------------------
* c5-10.c : Å°ÀÎµÈ ¹®ÀÚ¸¦ ¹«½ÃÇÑ ÀÔ·Â
*---------------------------------------------------------------------------------------------*/
main( )
{
char a, b, c;
printf("char = ? ");
scanf("%c", &a);
scanf("%*c%c%c", &b,&c);
printf("%c%c%c\n", a,b,c);
}
¢Ñ ½ÇÇà °á°ú1 ¢Ñ ½ÇÇà °á°ú2 ¢Ñ ½ÇÇà °á°ú3
c>c5-09 c>c5-09 c>c5-09
char = ? 12345 㟺 char = ? 1 2 3 㟺 char = ? 1 㟺 234 㟺
134 12 1
À§ ÇÁ·Î±×·¥ÀÇ '½ÇÇà°á°ú1'¿¡¼ ¾Ë ¼ö ÀÖµíÀÌ Çü½Ä ÁöÁ¤ ¹®ÀÚ¿ '%*c'´Â ´ëÀÀµÇ´Â ÇϳªÀÇ ¹®ÀÚ¸¦ ¹«½ÃÇÏ´Â Àǹ̷Π»ç¿ëµÈ´Ù.
¡¶¿¬½À 5¡·µÎ°³ÀÇ 1 Byte ¹®ÀÚ¸¦ ÀÔ·Â ¹Þ¾Æ ¾Æ·¡¿Í °°Àº ¸ð¾çÀ» Ãâ·ÂÇÏ´Â ÇÁ·Î±×·¥À» ÀÛ ¼ºÇÏ¿©¶ó.
¢Ñ ½ÇÇà °á°ú
char = ? xy
x y
x y
x y
xy
y x
y x
y x
¡¶¿¬½À 6¡·ASCII Äڵ带 ÀÌ¿ëÇÏ¿© ¾Æ·¡¿Í °°Àº ±×¸²À» Ãâ·ÂÇÏ´Â ÇÁ·Î±×·¥À» ÀÛ¼ºÇÏ¿©¶ó.
¢Ñ ½ÇÇà °á°ú
ABCDEFGHIJKLMNOPQRSTUVWXYZ
BCDEFGHIJKLMNOPQRSTUVWXYZA
CDEFGHIJKLMNOPQRSTUVWXYZAB
DEFGHIJKLMNOPQRSTUVWXYZABC
EFGHIJKLMNOPQRSTUVWXYZABCD
FGHIJKLMNOPQRSTUVWXYZABCDE
GHIJKLMNOPQRSTUVWXYZABCDEF
HIJKLMNOPQRSTUVWXYZABCDEFG
IJKLMNOPQRSTUVWXYZABCDEFGH
JKLMNOPQRSTUVWXYZABCDEFGHI
KLMNOPQRSTUVWXYZABCDEFGHIJ
LMNOPQRSTUVWXYZABCDEFGHIJK
MNOPQRSTUVWXYZABCDEFGHIJKL
NOPQRSTUVWXYZABCDEFGHIJKLM
OPQRSTUVWXYZABCDEFGHIJKLMN
PQRSTUVWXYZABCDEFGHIJKLMNO
QRSTUVWXYZABCDEFGHIJKLMNOP
RSTUVWXYZABCDEFGHIJKLMNOPQ
STUVWXYZABCDEFGHIJKLMNOPQR
TUVWXYZABCDEFGHIJKLMNOPQRS
UVWXYZABCDEFGHIJKLMNOPQRST
VWXYZABCDEFGHIJKLMNOPQRSTU
WXYZABCDEFGHIJKLMNOPQRSTUV
XYZABCDEFGHIJKLMNOPQRSTUVW
YZABCDEFGHIJKLMNOPQRSTUVWX
¾Æ·¡ÀÇ ÇÁ·Î±×·¥Àº ½ÇÇà °á°ú¿Í °°ÀÌ µÎ °³ÀÇ ½Ç¼ö¿Í ¿¬»êÀÚ(+, -, *, /)¸¦ ÀÔ·ÂÇÏ¸é ±× ¿¬»ê °á°ú¸¦ Ãâ·ÂÇÏ´Â ÇÁ·Î±×·¥ÀÌ´Ù.
¡º½Ç½À 5-20¡»¿¹Á¦ ÇÁ·Î±×·¥
/*----------------------------------------------------------------------------------------------
* c5-20.c : ¹®ÀÚ¿ÀÇ È°¿ë
*---------------------------------------------------------------------------------------------*/
main( )
{
float value_1, value_2;
char operator;
printf("¼ö½Ä = ? ");
scanf("%f%c%f", &value_1, &operator, &value_2);
if ( operator == '+')
printf("%.2f\n", value_1+value_2);
else if ( operator == '-')
printf("%.2f\n", value_1-value_2);
else if ( operator == '*')
printf("%.2f\n", value_1*value_2);
else if ( operator == '/')
printf("%.2f\n", value_1/value_2);
}
¢Ñ ½ÇÇà °á°ú ¢Ñ ½ÇÇà °á°ú
c>c5-20 c>c5-20
¼ö½Ä = ? 2+5 ¼ö½Ä = ? 1/3
7.00 0.33
7. ¹®ÀÚ ¹è¿
1)¹®ÀÚ ¹è¿ ¿ø¼ÒÀÇ Ãâ·Â
¡º½Ç½À 5-11¡»¿¹Á¦ ÇÁ·Î±×·¥
/*----------------------------------------------------------------------------------------------
* c5-11.c : ¹®ÀÚ ¹è¿ ¿ø¼ÒÀÇ ³»¿ë Ãâ·Â
*---------------------------------------------------------------------------------------------*/
main( )
{
char c[5];
c[0]='I', c[1]='B', c[2]='M', c[3]='P', c[4]='C':
printf("%c%c%c %c%c\n", c[0], c[1], c[2], c[3], c[4]);
}
¢Ñ ½ÇÇà °á°ú
c>c5-11
IBM PC
¡º½Ç½À 5-12¡»¿¹Á¦ ÇÁ·Î±×·¥
/*----------------------------------------------------------------------------------------------
* c5-12.c : intÇü ¹è¿ º¯¼ö¿¡ ÀÇÇÑ ¹®ÀÚ µ¥ÀÌÅÍÀÇ ÀÔÃâ·Â
*---------------------------------------------------------------------------------------------*/
main( )
{
int c[5];
c[0]='I', c[1]='B', c[2]='M', c[3]='P', c[4]='C':
printf("%c%c%c %c%c\n", c[0], c[1], c[2], c[3], c[4]);
}
¢Ñ ½ÇÇà °á°ú
c>c5-12
IBM PC
2) ¹®ÀÚ ¹è¿ÀÇ ÃʱâÈ
¡º½Ç½À 5-13¡»¿¹Á¦ ÇÁ·Î±×·¥
/*----------------------------------------------------------------------------------------------
* c5-13.c : ¹®ÀÚ ¹è¿ÀÇ ÃʱâÈ
*---------------------------------------------------------------------------------------------*/
main( )
{
static char c[8]={ 'C', 'o', 'm', 'p', 'u', 't', 'e', 'r'};
printf("%c%c%c%c%c%c%c%c\n", c[0],c[1],c[2],c[3],c[4],c[5],c[6],c[7]);
}
¢Ñ ½ÇÇà °á°ú
c>c5-13
Computer
㽗 Âü°í : static char c[8] = { 'C', 'o', 'm', 'p', 'u', 't', 'e', 'r'}; ´ë½Å¿¡ ¾Æ·¡ÀÇ ¾î´À ÇÑ ¹® ÀåÀ» »ç¿ëÇÒ ¼ö ÀÖ´Ù.
static char c[ ] = {'C', 'o', 'm', 'p', 'u', 't', 'e', 'r'};
static char c[8] = {"Computer"};
static char c[ ] = {"Computer"};
static char c[8] = "Computer";
static char c[ ] = "Computer";
㽗 Âü°í : 1Çà¿¡ ¸ðµÎ ±â¼úÇÒ ¼ö ¾ø´Â ±ä ¹®ÀÚ¿Àº ´ÙÀ½°ú °°ÀÌ ³ª´©¾î ±â¼úÇÒ ¼ö ÀÖ´Ù.
static char p[ ] = "Hello "
"MicroSoft C "
"Compiler \n";
Áï À§ ¹®ÀåÀº ´ÙÀ½ÀÇ ¹®Àå°ú °°´Ù.
static char p[ ] = "Hello MicroSoft C Compiler \n");
3) ¹®ÀÚ ¹è¿ ³»¿ëÀÇ Ãâ·Â (1Â÷¿ø ¹è¿)
¡º½Ç½À 5-14¡»¿¹Á¦ ÇÁ·Î±×·¥
/*----------------------------------------------------------------------------------------------
* c5-14.c : ¹®ÀÚ ¹è¿ÀÇ ÃʱâÈ
*---------------------------------------------------------------------------------------------*/
main( )
{
static char c[ ]= "KOREA"
printf("%c %c %c %c %c\n", c[0],c[1],c[2],c[3],c[4]);
printf("%s\n",c);
}
¢Ñ ½ÇÇà °á°ú
c>c5-14
K O R E A
KOREA
㽬 charÇü ¹è¿ÀÇ ³»¿ëÀ» ¸ð´ÏÅÍ¿¡ Ç¥½ÃÇÒ ¶§¿¡´Â print( )ÇÔ¼ö¿¡¼ Çü½Ä ÁöÁ¤ ¹®ÀÚ¿ %s¸¦ »ç¿ëÇÑ´Ù.
¡¶¿¬½À 7¡·´ÙÀ½ ÇÁ·Î±×·¥À» ½ÇÇà½ÃÅ°¸é ¾Æ·¡¿Í °°Àº Ãâ·Â °á°ú¸¦ ¾òÀ» ¼ö ¾ø´Ù.
±× ¿øÀÎÀ» ¼³¸íÇÏ¿©¶ó.
main( )
{
static char c[ ]={ 'C', 'o', 'm', 'p', 'u', 't', 'e', 'r'};
printf("%s\n", c);
}
¢Ñ ½ÇÇà °á°ú
Computer
¡º½Ç½À 5-15¡»¿¹Á¦ ÇÁ·Î±×·¥
/*----------------------------------------------------------------------------------------------
* c5-15.c : ¹®ÀÚ ¹è¿ÀÇ Ã·ÀÚ ¹üÀ§
*---------------------------------------------------------------------------------------------*/
main( )
{
static char str[ ]="String";
int i;
for ( i=0; i<=10; i++)
printf("\nstr[%d] ==> %c", i, str[i]);
}
¢Ñ ½ÇÇà °á°ú
c>c5-15
str[0] ==> S
str[1] ==> t
str[2] ==> r
str[3] ==> i
str[4] ==> n
str[5] ==> g
str[6] ==>
str[7] ==>
str[8] ==> ##
str[9] ==>
str[10] ==>
À§ ÇÁ·Î±×·¥ÀÇ ½ÇÇà °á°ú¿¡¼ ¾Ë ¼ö ÀÖµíÀÌ str[0]¿¡¼ str[6]±îÁö¸¸ Àǹ̸¦ °®À¸¸ç str[7]ÀÌÈÄÀÇ ³»¿ëÀº ºÎÁ¤È®ÇÏ´Ù. µû¶ó¼ ¹è¿ »ç¿ë½Ã ÷ÀÚ´Â ¹üÀ§³»ÀÇ °ªÀ» »ç¿ëÇÏ¿©¾ß ÇÑ´Ù.
4) ¹®ÀÚ ¹è¿ ³»¿ëÀÇ Ãâ·Â (2Â÷¿ø ¹è¿)
¡º½Ç½À 5-15¡»¿¹Á¦ ÇÁ·Î±×·¥
/*----------------------------------------------------------------------------------------------
* c5-16.c : 2Â÷¿ø ¹®ÀÚ ¹è¿ÀÇ ÃʱâÄ¡ ºÎ¿© ¹× Ãâ·Â
*---------------------------------------------------------------------------------------------*/
main( )
{
int i, j;
static char str[ ][6]={
{'K', 'O', 'R', 'E', 'A'},
{'C', 'H', 'I', 'N', 'A'},
};
for (i=0 ; i<=1; i++)
for (j=0; j<=5; j++)
printf("\nstr[%d][%d] ==> %c", i, j, str[i][j]);
}
¢Ñ ½ÇÇà °á°ú
c>c5-16
str[0][0] ==> K
str[0][1] ==> 0
str[0][2] ==> R
str[0][3] ==> E
str[0][4] ==> A
str[0][5] ==> /* \0 (°ø¹é¹®ÀÚ) */
str[1][0] ==> C
str[1][1] ==> H
str[1][2] ==> I
str[1][3] ==> N
str[1][4] ==> A
str[1][5] ==> /* \0 (°ø¹é¹®ÀÚ) */
¡º½Ç½À 5-17¡»¿¹Á¦ ÇÁ·Î±×·¥
/*----------------------------------------------------------------------------------------------
* c5-17.c : 2Â÷¿ø ¹®ÀÚ ¹è¿ÀÇ ÃʱâÄ¡ ºÎ¿© ¹× Ãâ·Â
*---------------------------------------------------------------------------------------------*/
main( )
{
static char c[ ][8]={ "Korea", "China", "America"};
int i;
for (i=0; i<=2; ++i)
printf("%s\n", c[i]);
}
¢Ñ ½ÇÇà °á°ú
c>c5-17
Korea
China
America
À§ ÇÁ·Î±×·¥ÀÇ print( )ÇÔ¼ö¿¡¼ »ç¿ëµÈ Çü½Ä ÁöÀú ¹®ÀÚ¿ %s´Â ±× ´ë»ó Àμö (c[i])°¡ °¡¸®Å°°í ÀÖ´Â ¹øÁö ÀÌÈÄ¿¡ ¼ö·ÏµÇ¾î ÀÖ´Â µ¥ÀÌÅ͸¦ string(¹®ÀÚ¿)ÀÇ ÇüÅ·ΠÃâ·ÂÇ϶ó´Â Àǹ̸¦ °®´Â´Ù.
%s¿¡ ÀÇÇؼ Ãâ·ÂµÇ´Â ¹®ÀÚ¿Àº ¹®ÀÚ¿ÀÇ ³¡À» ¾Ë¸®´Â °ø¹®ÀÚ¿(\0)À» ¸¸³¯¶§±îÁö °è¼ÓµÈ´Ù. ÇÁ·Î±×·¥ [c5-17.c]´Â ÀÌ¿Í °°Àº ±â´ÉÀ» ÀÌ¿ëÇÏ¿© 2Â÷¿ø ¹è¿·Î ±¸¼ºµÈ ¹®ÀÚ¿À» ¹®ÀÚ¿ ´ÜÀ§·Î Ãâ·ÂÇÏ´Â ¿¹¸¦ ³ªÅ¸³½ °ÍÀÌ´Ù.
5) ¹®ÀÚ¿ÀÇ ÀÔ·Â
¡º½Ç½À 5-18¡»¿¹Á¦ ÇÁ·Î±×·¥
/*----------------------------------------------------------------------------------------------
* c5-18.c : ¹®ÀÚ¿ÀÇ ÀÔ·Â
*---------------------------------------------------------------------------------------------*/
main( )
{
static char str[50];
printf("¹®ÀÚ¿ = ? ");
scanf("%s", str);
printf("ÀÔ·ÂÇÑ ¹®ÀÚ¿ = %s", str);
}
¢Ñ ½ÇÇà °á°ú
c>c5-18
¹®ÀÚ¿ = ? Korea
ÀÔ·ÂÇÑ ¹®ÀÚ¿ = Korea
¢Ñ ½ÇÇà °á°ú
c>c5-18
¹®ÀÚ¿ = ? ´ëÇѹα¹Àº ¹ÎÁÖ°øȱ¹ÀÌ´Ù.
ÀÔ·ÂÇÑ ¹®ÀÚ¿ = ´ëÇѹα¹Àº
㽬 scanf( )ÇÔ¼ö´Â ¹®ÀÚ¿À» ÀÔ·ÂÇÒ ¶§¿¡´Â óÀ½ ³ªÅ¸³ª´Â °ø¹é(¶Ç´Â ÅÇ, °³Ç๮ÀÚ)ÀÌÈÄÀÇ ¹®ÀÚ¿À» ÀÐ¾î µéÀÌÁö ¾Ê´Â´Ù´Â Á¡¿¡ À¯ÀÇÇØ¾ß ÇÑ´Ù.
㽬 scanf( )ÇÔ¼ö¿¡ ÀÇÇÏ¿© ¹è¿¿¡ µ¥ÀÌÅ͸¦ ÀоîµéÀÏ ¶§¿¡´Â ¹øÁö ¿¬»êÀÚ &¸¦ »ç¿ëÇÏÁö ¾ÊÀ½¿¡ À¯ÀÇ Ç϶ó. ¿Ö³ÄÇÏ¸é ¹è¿¸íÀº ±× ¹è¿ÀÇ Ã¹¹ø° ¿ø¼ÒÀÇ ¹øÁö¸¦ ÀǹÌÇϱ⠶§ ¹®ÀÌ´Ù. ÀÚ¼¼ÇÑ ¼³¸íÀº Á¦¥·ÀåÀÇ Æ÷ÀÎÅÍ¿¡¼ ±¸Ã¼ÀûÀ¸·Î ¾Ë¾Æº¸±â·Î ÇÑ´Ù.
¡º½Ç½À 5-19¡»¿¹Á¦ ÇÁ·Î±×·¥
/*----------------------------------------------------------------------------------------------
* c5-19.c : ¹®ÀÚ ¹è¿ÀÇ È°¿ë(1)
*---------------------------------------------------------------------------------------------*/
main( )
{
static char digits[16]={
'0', '1', '2', '3', '4', '5', '6', '7',
'8', '9', 'A', 'B', 'C', 'D', 'E', 'F'
};
int n[64];
long int decimal;
int temp, base, index=0;
printf("º¯È¯ÇÒ ¼ö(decimal)´Â ? ");
scanf("%ld", &decimal);
printf("º¯È¯ÇÒ Áø¹ý(base)Àº ? ");
scanf("%d", &base);
do {
n[index] = decimal % base;
index++;
decimal /= base;
}
while ( decimal !=0 );
printf("º¯È¯µÈ ¼ö = ");
for (index--; index>=0; index--) {
temp = n[index];
printf("%c", digits[temp]);
}
printf("\n");
}
¢Ñ ½ÇÇà °á°ú ¢Ñ ½ÇÇà °á°ú
c>c5-19 c>c5-19
º¯È¯µÉ ¼ö(decimal)´Â ? 10 º¯È¯µÉ ¼ö(decimal)´Â ? 123456
º¯È¯µÉ Áø¹ý(base)Àº ? 2 º¯È¯µÉ Áø¹ý(base)Àº ? 16
º¯È¯µÈ ¼ö = 1010 º¯È¯µÈ ¼ö = 1E240
¥µ. ÇÔ ¼ö
1. ÇÔ¼öÀÇ °³³ä
ÇÔ¼ö¶õ ƯÁ¤ÇÑ ÀÛ¾÷À» ¼öÇàÇϵµ·Ï ÀÛ¼ºµÈ µ¶¸³ÀûÀÎ ÇÁ·Î±×·¥À» ¸»ÇÑ´Ù. ´Ù½Ã ¸»Çؼ ÇÔ¼ö´Â ÀÏÁ¾ÀÇ ±Ô°ÝÈ µÈ ¼ºê·çƾ(subroutine)À̶ó ÇÒ ¼ö ÀÖ´Ù.
ÇÔ¼ö¸¦ »ç¿ëÇϸé ÇÁ·Î±×·¥ÀÌ ¸ðµâȵǾî ÀÌÇØÇϱ⠽±°í ¼öÁ¤ ¹× À¯Áö º¸¼ö°¡ ¿ëÀÌÇÒ »Ó¸¸ ¾Æ´Ï¶ó ÀÚÁÖ »ç¿ëµÇ´Â ±â´ÉÀ» ÇÁ·Î±×·¥ÇÏ¿© ÇÊ¿äÇÒ ¶§ ¸¶´Ù È£ÃâÇÏ¿© »ç¿ëÇϸé Æí¸®ÇÏ´Ù.
2. cÇÁ·Î±×·¥ÀÇ ±¸¼º°ú ÇÔ¼ö
+---------------+
| ÀϹÝÀûÀÎ |
| CÇÁ·Î±×·¥ |
+-------+-------+ +----------------+
+-----------+ #header | ¼±Çà 󸮱⠸í·É
| +----------------+
| +----------------+
+-----------+ main ( ) | Ç×»ó main( )ÇÔ¼öºÎÅÍ ½ÇÇàµÈ´Ù.
| +-------+--------+
| | +--------------+
| +----+ ¹®Àå |
| +-------+------+
| |
| +-----------------+
+-----------+ ÇÔ¼ö a( ) | CÇÁ·Î±×·¥À» ±¸¼ºÇÏ´Â ºí·°
| +-------+---------+ +--------------+
| +-----------+ ¹®Àå |
| +------+-------+
| +-----------------+ |
+-----------+ ÇÔ¼ö b( ) |
| +-------+---------+ +--------------+
| +-----------+ ¹®Àå |
| +------+-------+
| |
À§ ºí·°µµ¿¡¼ ¾Ë ¼ö ÀÖµíÀÌ CÇÁ·Î±×·¥Àº ÃÖ¼ÒÇÑ 1°³ ÀÌ»óÀÇ ÇÔ¼ö·Î ±¸¼º µÈ´Ù. Áï CÇÁ·Î±×·¥Àº ÇÔ¼ö¸¦ ´ÜÀ§·Î ÇÏ¿© ±¸¼ºµÈ´Ù. À̵é ÇÔ¼ö´Â ¾î¶°ÇÑ ¼ø¼·Î ¹è¿µÇ¾î À־ °ü°è¾øÀ¸¸ç ½ÇÇàÇÒ ÇÁ·Î±×·¥¿¡´Â ¹Ýµå½Ã main( )ÇÔ¼ö°¡ 1°³ Æ÷ÇÔ µÇ¾î¾ß ÇÑ´Ù. ¿Ö³ÄÇϸé ÇÁ·Î±×·¥ÀÇ ½ÇÇàÀº main( )ÇÔ¼ö·ÎºÎÅÍ ½ÃÀ۵DZ⠶§¹®ÀÌ´Ù. (ÇÔ¼öÀÇ Çü¼±¾ðÀÌ ¾ö¹ÐÇÑ ANSI ±âÁØÀÇ C¿¡¼´Â ÇÔ¼ö¸¦ »ç¿ëÇϱâ ÀÌÀü¿¡ ÇÔ¼ö¸¦ Á¤ÀÇÇÏ´Â °ÍÀÌ ÁÁ´Ù. ¿©±â¿¡¼´Â ÀÌ ±âÁØ¿¡ µû¸£±â·Î ÇÑ´Ù.)
CÇÁ·Î±×·¥À» ±¸¼ºÇÒ ¶§ °¢ ±â´Éº°·Î º°µµÀÇ ÇÔ¼ö¸¦ ÀÛ¼ºÇÑ µÚ º¹¼ö°³ÀÇ ÇÔ¼ö¸¦ Çϳª·Î ¹¾îÁÖ¸é Àüü ÇÁ·Î±×·¥À» ³í¸®ÀûÀ¸·Î ±¸Á¶È½Ãų ¼ö ÀÖÀ¸¸ç ÇÁ·Î±×·¥ÀÇ ¼öÁ¤À̳ª º¸¿Ï½Ã ÀÌ¿¡ ÇØ´çÇÏ´Â ÇÔ¼ö¸¸ ¼öÁ¤Çϰųª º¸¿ÏÇÏ¸é µÇ¹Ç·Î Æí¸®ÇÏ´Ù.
㽬 CÇÁ·Î±×·¥¿¡¼ ÇÔ¼ö´Â ºí·° ¸ÂÃß±âÀÇ ºí·°¿¡ ºñÀ¯ÇÒ ¼ö ÀÖ´Ù. Áï, ºí·° ¸ÂÃ߱⿡¼ ºí·°µéÀ» Á¶ÇÕÇÏ¿© ¿øÇÏ´Â ÇüŸ¦ ¸¸µéµíÀÌ CÇÁ·Î±×·¥¿¡¼µµ ÇÔ¼öµéÀ» Àû´çÈ÷ Á¶ÇÕÇÏ ¸é ¿øÇÏ´Â ÇüÅÂÀÇ ÇÁ·Î±×·¥À» ¸¸µé¼ö Àֱ⠶§¹®ÀÌ´Ù.
3. ÇÔ¼öÀÇ Á¾·ù
CÇÁ·Î±×·¥¿¡¼ »ç¿ëÇÒ ¼ö ÀÖ´Â ÇÔ¼ö´Â C¾ð¾î ÀÚü¿¡ ¹Ì¸® ÁغñµÇ¾î ÀÖ´Â ½Ã½ºÅÛ Ç¥ÁØ ÇÔ¼ö¿Í »ç¿ëÀÚ°¡ Á÷Á¢ Á¤ÀÇÇÏ¿© »ç¿ëÇÏ´Â »ç¿ëÀÚ Á¤ÀÇ ÇÔ¼öÀÇ 2°¡Áö·Î ±¸ºÐµÈ´Ù.
½Ã½ºÅÛ Ç¥ÁØ ÇÔ¼ö´Â ÄÄÆÄÀÏ·¯¿¡ ÀÇÇØ ÀÚüÀûÀ¸·Î ÁغñµÇ¾î ÀÖ´Â ÇÔ¼ö·Î »ç¿ëÀÚ°¡ ÁغñÇÏÁö ¾Ê¾Æµµ Á÷Á¢ ÀÌ¿ë ÇÒ ¼ö ÀÖ´Â ÇÔ¼öÀ̸ç printf( )ÇÔ¼ö³ª scanf( )ÇÔ¼öµîÀ» ¿¹·Î µé¼ö ÀÖ´Ù.
¹Ý¸é¿¡ »ç¿ëÀÚ Á¤ÀÇ ÇÔ¼ö´Â »ç¿ëÀÚ°¡ Á÷Á¢ Á¤ÀÇÇÏ°í ÀÛ¼ºÇÏ¿©¾ß »ç¿ëÇÒ ¼ö ÀÖ´Â ÇÔ¼ö¸¦ ¸»ÇÑ´Ù. ¿©±â¿¡¼´Â ¾î¶°ÇÑ ±â´ÉÀ» ¼öÇàÇÏ·Á¸é »ç¿ëÀÚ°¡ Á÷Á¢ ÀÛ¼ºÇÏ¿©¾ß ÇÏ´Â »ç¿ëÀÚ Á¤ÀÇ ÇÔ¼ö¿¡ ´ëÇÏ¿© ±¸Ã¼ÀûÀ¸·Î ¾Ë¾Æ º¸±â·Î ÇÑ´Ù.
4. ÇÔ¼öÀÇ Á¤ÀÇ
C¾ð¾î¿¡¼ »ç¿ëÀÚ Á¤ÀÇ ÇÔ¼ö´Â ´ÙÀ½°ú °°Àº Çü½ÄÀ¸·Î ±¸¼ºµÇ¾î¾ß ÇÑ´Ù.
<ÀϹÝÇü½Ä>
[µ¥ÀÌÅÍÇü] ÇÔ¼ö¸í ([°¡Àμö1], [°¡Àμö2], ) °¡Àμö ¼±¾ð¹® { ÇÔ¼ö º»Ã¼ [return(½Ä);] } |
¢¹µ¥ÀÌÅÍ Çü : ÀϹÝÀûÀ¸·Î ÇÔ¼ö´Â ±× ÀÚü°¡ °ªÀ» °®°Ô µÇ¸ç ÀÌ °ªÀº ÀÌ ÇÔ¼ö¸¦ È£ Ãâ(calling)ÇÑ ÇÁ·Î±×·¥¿¡ µÇµ¹·Á ÁÖ°Ô µÇ´Âµ¥ ÀÌ ¶§ µÇµ¹·Á ÁÖ´Â °ª (return°ª)ÀÇ µ¥ÀÌÅÍÇüÀ» ±â¼úÇÑ´Ù.
¸¸ÀÏ È£ÃâÇÑ ÇÔ¼ö·Î µÇµ¹·ÁÁö´Â °ªÀÌ intÇüÀÌ¸é »ý·«ÇÒ ¼ö ÀÖ´Ù.
¢¹°¡Àμö : È£Ãâ ÇÁ·Î±×·¥À¸·ÎºÎÅÍ ÇÔ¼ö°¡ µ¥ÀÌÅ͸¦ Àü´Þ¹ÞÀ» ¶§ »ç¿ëÇÏ´Â ¸Å°³ º¯ ¼ö ÀÌ´Ù. Áï È£Ãâ ÇÁ·Î±×·¥À¸·ÎºÎÅÍ Àü´Þ¹Þ¾Æ ó¸®ÇÒ µ¥ÀÌÅÍ °ªÀ» ±â ¾ï½Ãų º¯¼ö¸¦ ¸»ÇÑ´Ù. °¡Àμö´Â ¹Ýµå½Ã º¯¼ö¸¦ »ç¿ëÇÏ¿©¾ß ÇÏ°í ±× ÇÔ¼öÀÇ ½ÃÀÛÀ» ³ªÅ¸³»´Â {±âÈ£ ¾Õ¿¡ ¼±¾ðÇϰųª ¶Ç´Â ÇÔ¼ö¸í µÚÀÇ ( )³» ¿¡ ±â¼úÇØ¾ß ÇÑ´Ù. °¡Àμö°¡ ¿©·¯°³ÀÏ ¶§¿¡´Â ÄÞ¸¶(,)·Î ±¸ºÐÇÑ´Ù.
[º¸±â] ÇÔ¼öÀÇ Á¤ÀÇ
int abs(x)
int x;
{
if (x>=0)
return (x);
else
return (-x);
}
⼔µ¥ÀÌÅÍÇü : int
⼔ÇÔ¼ö¸í : abs
⼔°¡Àμö : x
⼔°¡Àμö ¼±¾ð¹® : int x;
⼔ÇÔ¼ö º»Ã¼+- {
| if (x>=0)
| return(x);
| else
| return(-x);
+- }
⽠ °¡Àμö´Â ÇÔ¼ö¸¦ Á¤ÀÇÇÒ ¶§ ÇÔ¼ö¸í µÚÀÇ ( )¼Ó¿¡ ±â¼úÇÏ¿©µµ °ü°è¾ø´Ù.
À§ÀÇ ¿¹¿¡¼
int abs(x)
int x;
´ë½Å¿¡ ¾Æ·¡¿Í °°ÀÌ ±â¼úÇÏ¿©µµ °ü°è¾ø´Ù.
int abs(int x)
5. ÇÔ¼öÀÇ È£Ãâ
ÇÔ¼ö¸¦ È£ÃâÇÒ ¶§¿¡´Â ´ÙÀ½°ú °°Àº Çü½ÄÀ¸·Î È£ÃâÇÑ´Ù.
<ÀϹÝÇü½Ä>
ÇÔ¼ö¸í (½ÇÀμö1, ½ÇÀμö2 ); |
Áï, È£ÃâÇÒ ÇÔ¼ö¸í ( ) µÚ¿¡ ;±âÈ£¸¦ ºÙÀÌ¸é µÈ´Ù. ±× ¿¹´Â ´ÙÀ½°ú °°´Ù.
[º¸±â] ÇÔ¼ö¸¦ È£ÃâÇÏ´Â ¹®ÀåÀÇ ¿¹
abs(x);
6. Àμö°¡ ¾ø´Â ÇÔ¼ö
´ëºÎºÐÀÇ ÇÔ¼ö´Â È£ÃâÇÏ´Â ÇÔ¼ö·ÎºÎÅÍ µ¥ÀÌÅ͸¦ Àü´Þ¹Þ¾Æ ó¸®ÇÑ ÈÄ ±× ó¸® °á°ú¸¦ È£ÃâÇÑ ÇÔ¼ö·Î µÇµ¹·Á º¸³» Áø´Ù. ±×·¯³ª °æ¿ì¿¡ µû¶ó¼´Â ÇÔ¼ö »çÀÌ¿¡ µ¥ÀÌÅ͸¦ Àü´ÞÇÏÁö ¾Ê°í ´ÙÀ½°ú °°ÀÌ ´Ü¼øÈ÷ »ç¿ëÀÚ Á¤ÀÇ ÇÔ¼ö¸¦ È£ÃâÇÒ ¼öµµ ÀÖ´Ù.
¡º½Ç½À 6-01¡»¿¹Á¦ ÇÁ·Î±×·¥
/*----------------------------------------------------------------------------------------------
* c6-01.c : »ç¿ëÀÚ ÇÔ¼öÀÇ È£Ãâ
*---------------------------------------------------------------------------------------------*/
func_1( )
{
printf("3 + 5 = %2d\n", 3+5);
}
func_2( )
{
printf("3 - 5 = %2d\n", 3-5);
}
main( )
{
func_1( );
func_2( );
}
¢Ñ ½ÇÇà °á°ú
c>c6-01
3 + 5 = 8
3 - 5 = -2
⽠ À§ ÇÁ·Î±×·¥Àº ´ÙÀ½°ú °°Àº ÀýÂ÷·Î ½ÇÇàµÈ´Ù.
main ( ) +----------→ func_1( )
{ È£Ãâ | {
func_1( ); --+ º¹±Í printf("3 + 5 = %2d\n", 3+5
←--------------- }
func_2( );-------------→ func_2( )
←--+ È£Ãâ {
} | printf("3 - 5 = %2d\n", 3-5);
+---------------- }
º¹±Í
㽬 À§ ÇÁ·Î±×·¥¿¡¼ ÇÔ¼ö¸í°ú ÇÔ¼ö È£ÃâÀ» À§ÇÑ ¹®ÀåÀº ´ÙÀ½°ú °°´Ù
1. ÇÔ¼ö¸í : func_1( )°ú func_2( )
2. ÇÔ¼ö È£ÃâÀ» À§ÇÑ ¹®Àå : func_1( );°ú func_2( );
7. Àμö¸¦ °®´Â ÇÔ¼ö
Àμö(¸Å°³ º¯¼ö : parameter)¶õ È£ÃâÇÏ´Â ÇÔ¼ö·ÎºÎÅÍ È£ÃâµÇ´Â ÇÔ¼ö¿¡ µ¥ÀÌÅ͸¦ Àü´ÞÇϱâ À§ÇÑ °ÍÀ¸·Î ÇÔ¼ö¸¦ È£ÃâÇÏ´Â ÂÊ¿¡¼ º» ¸Å°³ º¯¼ö¸¦ ½ÇÀμö¶ó°í ÇÏ°í, È£ÃâµÇ´Â ÇÔ¼öÂÊ¿¡¼ º» ¸Å°³ º¯¼ö¸¦ °¡Àμö¶ó ÇÑ´Ù.
1) ½ÇÀμö(actual parameter :actual argument)
ÇÔ¼ö¸¦ È£ÃâÇÏ·Á¸é È£ÃâÇÒ ÇÔ¼ö¸í µÚ¿¡ ;±âÈ£¸¦ ºÙÀÌ¸é µÈ´Ù. ¿¹¸¦ µé¾î ¿¹Á¦<c6-02.c>¿¡¼ ÇÔ¼ö sum( )À» È£ÃâÇϱâ À§Çؼ ´ÙÀ½°ú °°ÀÌ ±â¼úÇÏ¿´´Ù.
sum(i);
À§ ¹®Àå¿¡¼ ( )¼ÓÀÇ i°¡ ½ÇÀμöÀÌ´Ù. Áï ÇÔ¼ö°¡ È£ÃâµÉ ¶§ ÇÔ¼ö·Î ³Ñ°ÜÁö´Â °ªÀ» ½ÇÀμö ¶Ç´Â ÆĶó¹ÌÅÍ(parameter)¶ó°íµµ ÇÑ´Ù. ½ÇÀμö°¡ ¿©·¯°³ÀÏ °æ¿ì¿¡´Â ÄÞ¸¶(,)·Î ±¸ºÐÇÏ¿© ³ª¿Çϸç, ÀÌ °ªµéÀº È£ÃâµÇ´Â ÇÔ¼öÀÇ °¡Àμö¿¡ ¼ø¼´ë·Î Àü´ÞµÈ´Ù.
½ÇÀμö´Â »ó¼ö, º¯¼ö, ¼ö½Ä µîÀÌ »ç¿ëµÉ ¼ö ÀÖÀ¸³ª ½ÇÁ¦·Î ÇÔ¼ö·Î Àü´ÞµÇ´Â °ÍÀº »ó¼ö, º¯¼ö, ¼ö½Ä ÀÚü°¡ ¾Æ´Ï¶ó ±×µéÀÌ °è»êµÈ °á°ú°ªÀÌ´Ù.
2) °¡Àμö (formal parameter : formal argument)
ÇÔ¼ö¸¦ È£ÃâÇÒ °æ¿ì È£ÃâµÈ ÇÔ¼ö¿¡¼´Â È£ÃâÇÑ ÇÔ¼ö·ÎºÎÅÍ Ã³¸®ÇÒ µ¥ÀÌÅÍÀÎ ½ÇÀμö¸¦ ¹Þ¾ÆµéÀÏ º¯¼ö°¡ ÇÊ¿äÇÏ°Ô µÇ´Âµ¥ ÀÌ º¯¼ö¸¦ °¡Àμö¶ó°í ÇÑ´Ù. °¡Àμö´Â µ¥ÀÌÅÍ(½ÇÀμö)¸¦ ¹Þ¾Æ µéÀÌ´Â ÇÔ¼ö ³»ÀÇ ÀϽÃÀûÀÎ ±â¾ï Àå¼ÒÀ̱⠶§¹®¿¡ ¹Ýµå½Ã º¯¼ö¸¸À» »ç¿ëÇØ¾ß ÇÑ´Ù.
Àμö°¡ ¿©·¯ °³À϶§¿¡´Â ÄÞ¸¶(,)·Î ±¸ºÐÇÏ¿© ³ª¿ÇÑ´Ù.
㽬 ¿¹Á¦<c6-01.c>¿¡¼Ã³·³ ÇÔ¼ö¿¡ Àü´ÞÇÒ Àμö°¡ ¾ø´Â °æ¿ì¿¡´Â ÇÔ¼ö È£Ãâ½Ã¿¡ ½ÇÀμö¸¦ ÁöÁ¤ÇÏÁö ¾ÊÀ¸¸é µÇ¸ç Àμö¸¦ ¹Þ¾ÆµéÀÌ´Â ÇÔ¼ö ºÎºÐ¿¡¼µµ °¡Àμö ¸®½ºÆ®¸¦ »ý·«ÇÏ¸é µÈ´Ù.
㽬 ½ÇÀμö¿Í ½ÇÀμö °ªÀ» ¹Þ¾ÆµéÀÏ °¡ÀμöÀÇ µ¥ÀÌÅÍÇüÀº ¹Ýµå½Ã ÀÏÄ¡ÇØ¾ß ÇÑ´Ù.
¡º½Ç½À 6-02¡»ÇϳªÀÇ Àμö¸¦ °®´Â ÇÔ¼öÀÇ ¿¹
/*----------------------------------------------------------------------------------------------
* c6-02.c : ÇϳªÀÇ Àμö¸¦ °®´Â ÇÔ¼ö
*---------------------------------------------------------------------------------------------*/
sum(n)
int n; /*Àμö´Â ¹Ýµå½Ã ÀÌ À§Ä¡¿¡ ¼±¾ðÇÑ´Ù. */
{
int i, s=0;
for (i=1; i<=n; i++)
s=s+i;
printf("sum(%d) = %d\n",n,s);
}
main ( )
{
int i;
for (i=10; i<=50; i+=10)
sum(i);
}
¢Ñ ½ÇÇà °á°ú
c>c6-02
sum(10) = 55
sum(20) = 210
sum(30) = 465
sum(40) = 820
sum(50) = 1275
㽬 ½ÇÀμö¿Í °¡Àμö¿ÍÀÇ °ü°è
main ( ) +-- sum( int n)
{ Àü´Þ | °¡Àμö(n)
int i; | {
for (i=10; i<=50; i+=10) | int i, s=0;
sum(i); | for (i=1; i<=n; i++)
} | | s=s+i;
+------------------+ printf("sum(%d) = %d\n",n,s);
½ÇÀμö(i) }
¡º½Ç½À 6-03¡»µÎ°³ÀÇ Àμö¸¦ °®´Â ÇÔ¼öÀÇ ¿¹
/*----------------------------------------------------------------------------------------------
* c6-03.c : µÎ°³ÀÇ Àμö¸¦ °®´Â ÇÔ¼ö
*---------------------------------------------------------------------------------------------*/
sum(int m, int n)
{
int i , s=0;
for ( i=m; i<=n; i++)
s=s+i;
printf("sum(%d,%d) = %d\n",m,n,s);
}
main( )
{
int i, j;
printf("i, j = ? ");
scanf("%d,%d", &i, &j);
sum(i,j);
}
¢Ñ ½ÇÇà °á°ú ¢Ñ ½ÇÇà °á°ú
c>c6-03 c>c6-03
i, j = ? 1, 10 i, j = ? 10, 20
sum(1,10) = 55 sum(10,20) = 165
¡¶¿¬½À 1¡·Å°º¸µå·Î ÀÓÀÇÀÇ ¼ö¸¦ ÀÔ·ÂÇÏ¿© ±× Àý´ë°ªÀ» Ãâ·ÂÇÏ´Â ÇÁ·Î±×·¥À» ÀÛ¼ºÇÏ¿©¶ó.
´Ü, Àý´ë°ªÀ» ±¸ÇÏ´Â ·çƾÀ» ÇÔ¼ö·Î ÀÛ¼ºÇÑ´Ù.
¡¶¿¬½À 2¡·µÎ°³ÀÇ Á¤¼ö¸¦ Å°º¸µå·Î ÀÔ·ÂÇÏ¿© µÎ ¼öÀÇ ÃÖ´ë °ø¾à¼ö¸¦ ±¸ÇÏ¿© Ãâ·ÂÇÏ´Â ÇÁ·Î ±×·¥À» ÀÛ¼ºÇÏ¿©¶ó. ´Ü, ÃÖ´ë °ø¾à¼ö¸¦ ±¸ÇÏ´Â ·çƾÀ» ÇÔ¼ö·Î ÀÛ¼ºÇÑ´Ù.
¡¶¿¬½À 3¡·½ÇÇà °á°ú¿Í °°ÀÌ ±×¸²À» Ãâ·ÂÇÏ´Â ÇÁ·Î±×·¥À» ÀÛ¼ºÇÏ¿©¶ó. ´Ü main( )ÇÔ¼ö°¡ ´ÙÀ½°ú °°À»¶§ space( )ÇÔ¼ö¿Í str( )ÇÔ¼ö¸¦ ¿Ï¼º Çϵµ·Ï ÇÑ´Ù.
main( ) ¢Ñ ½ÇÇà °á°ú
{ n = ? 5
int n, i; *
***
printf("n = ? "); *****
scanf("%d", &n); *******
*********
for (i=1; i<=n; i++)
{
space(n-i);
star(2*i-1);
printf("\n");
}
}
¡¶¿¬½À 4¡·¾Æ·¡ÀÇ ½ÇÇà °á°ú¿Í °°ÀÌ Á¤¼ö nÀÇ °ªÀ» ÀÔ·Â¹Þ¾Æ nÀÇ 0½ÂºÎÅÍ 5½Â±îÁöÀÇ °ªÀ» Ãâ·ÂÇÏ´Â ÇÁ·Î±×·¥À» ÀÛ¼ºÇÏ¿©¶ó.
¢Ñ ½ÇÇà °á°ú
n = ? 3
3 ^ 0 = 1
3 ^ 1 = 3
3 ^ 2 = 9
3 ^ 3 = 27
3 ^ 4 = 81
3 ^ 5 = 243
8. ÇÔ¼öÀÇ °ª°ú µ¥ÀÌÅÍÀÇ Çü
C¾ð¾î¿¡¼´Â È£ÃâÇÒ ÇÁ·Î±×·¥(ÇÔ¼ö)À¸·Î Àμö¸¦ Àü´ÞÇÒ ¶§¿¡ ½ÇÀμö¸¦ ½ÇÁ¦ÀÇ °ªÀ¸·Î¼ °¡Àμö¿¡ Àü´ÞÇÑ´Ù. ±×·¯³ª ÀÌ¿Í´Â ¹Ý´ë·Î °¡ÀμöÀÇ °ªÀ» ½ÇÀμö·Î µÇµ¹¸± ¼ö ¾øµµ·Ï ¼³°èµÇ¾ú±â ¶§¹®¿¡ ÇÔ¼ö·ÎºÎÅÍ È£ÃâÇÑ ÇÔ¼ö·Î ó¸®ÇÑ °ªÀ» µÇµ¹·Á º¸³»±â À§Çؼ´Â return¹®À» »ç¿ëÇÑ´Ù. ±×¸®°í À̶§ µÇµ¹·Á º¸³»Áö´Â °ªÀ» ¸®ÅÏ(return)°ªÀ̶ó°í Çϸç ÀÌ°ªÀº °ð ÇÔ¼öÀÇ °ªÀÌ µÈ´Ù. ÇÔ¼öÀÇ °ªÀ» È£ÃâÇÑ ÇÁ·Î±×·¥À¸·Î µÇµ¹·Á º¸³¾¶§ »ç¿ëÇÏ´Â return¹®ÀÇ ÀÏ¹Ý Çü½ÄÀº ´ÙÀ½°ú °°´Ù.
<ÀϹÝÇü½Ä>
return (¿¬»ê½Ä); |
return¹®Àº ¿¬»ê½ÄÀÇ °á°ú°ªÀ» ÇÔ¼öÀÇ °ªÀ¸·Î È£ÃâÇÑ ÇÔ¼ö·Î µÇµ¹·Á º¸³¾ ¶§ »ç¿ëÇÏ¸ç µÇµ¹·Á º¸³»Áö´Â °ªÀÇ µ¥ÀÌÅÍÇüÀº ÇÔ¼ö Á¤Àǽÿ¡ ¼±¾ðµÈ µ¥ÀÌÅÍÀÇ ÇüÀÌ´Ù.
㽬 return¹®ÀÌ »ç¿ëµÇ´Â °æ¿ì
¨çÇöÀç ¼öÇàµÇ°í ÀÖ´Â ÇÔ¼ö¸¦ Å»ÃâÇÒ ¶§ (Á¦¾î¸¦ È£ÃâÇÑ ÇÔ¼ö·Î À̵¿½ÃÅ°°íÀÚ ÇÒ ¶§)
¨èÇÔ¼ö¸¦ È£ÃâÇß´ø °÷À¸·Î ÇÔ¼öÀÇ °ªÀ» µÇµ¹¸± ¶§.
㽬 ÇÔ¼öÀÇ ½ÇÇàÀ» ÁßÁöÇÏ°í È£ÃâÇÑ °÷À¸·Î Á¦¾î°¡ À̵¿µÇ´Â °æ¿ì
¨çÇÔ¼öÀÇ ³¡±îÁö ½ÇÇàÀ» ¸¶Ä¡°í ÇÔ¼öÀÇ ³¡À» ÀǹÌÇÏ´Â }±âÈ£¸¦ ¸¸³¯¶§.
¨èreturn¹®À» ¸¸³¯¶§.
C¾ð¾î¿¡¼ ÇÔ¼ö »çÀÌ¿¡ µ¥ÀÌÅ͸¦ ÁÖ°í ¹Þ´Â ¹æ¹ýÀ¸·Î ´ÙÀ½°ú °°Àº 3°¡Áö ¹æ¹ýÀ» »ç¿ëÇÏ°í ÀÖ´Ù.
⽤call by value : ½ÇÀμöÀÇ ½ÇÁ¦°ªÀ» °¡Àμö¿¡ Àü´ÞÇÏ´Â ¹æ½Ä
⽤call by reference : º¯¼öÀÇ ÁÖ¼Ò¸¦ °¡Àμö¿¡ Àü´ÞÇÏ´Â ¹æ½Ä.
⽤¿ÜºÎ º¯¼ö¿¡ ÀÇÇÑ Àü´Þ : ¿ÜºÎ º¯¼ö´Â ¸ðµç ÇÔ¼ö¿¡¼ ÂüÁ¶ÇÒ ¼ö ÀÖÀ¸¹Ç·Î ¿ÜºÎ º¯¼ö¸¦ ÀÌ¿ëÇÏ¿© Àμö Àü´Þ¾øÀÌ ÇÔ¼ö »çÀÌ¿¡ µ¥ÀÌÅ͸¦ Àü´ÞÇÏ´Â ¹æ½Ä.
¿©±â¿¡¼´Â call by value¿¡ ´ëÇؼ¸¸ ¼³¸íÇϱâ·Î ÇÑ´Ù. call by reference¿¡ ´ëÇؼ´Â Æ÷ÀÎÅÍ(pointer)¸¦ ¼³¸íÇÒ ¶§ ±¸Ã¼ÀûÀ¸·Î ¾Ë¾Æ º¸±â·Î ÇÑ´Ù. ±×¸®°í ¿ÜºÎ º´©¿¡ ÀÇÇÑ Àü´Þ¹æ¹ýÀº Á¦¥¶ÀåÀÇ ±â¾ï Àå¼ÒÀÇ Á¾·ù¿¡¼ ¼³¸íÇϱâ·Î ÇÑ´Ù.
¡º½Ç½À 6-04¡»¿¹Á¦ÇÁ·Î±×·¥
/*----------------------------------------------------------------------------------------------
* c6-04.c : Àý´ë°ªÀ» ±¸ÇÏ´Â ÇÔ¼ö
*---------------------------------------------------------------------------------------------*/
int abs(int x)
{
if ( x<0 )
x= -x;
return(x);
}
main ( )
{
int x, result;
printf("x = ? ");
scanf("%d", &x);
result = abs(x);
printf("ABS(%d) = %d\n", x, result);
}
¢Ñ ½ÇÇà °á°ú ¢Ñ ½ÇÇà °á°ú ¢Ñ ½ÇÇà °á°ú
c>c6-04 c>c6-04 c>c6-04
x = ? -14 x = ? 14 x = ? 0
ABS(-14) = 14 ABS(14) = 14 ABS(0) = 0
À§ ÇÁ·Î±×·¥¿¡¼ "result = abs(x); "¿¡ ÀÇÇØ ÇÔ¼ö abs( )°¡ È£ÃâµÇ¸é ½ÇÀμö xÀÇ °ªÀÌ abs( )ÀÇ °¡Àμö¿¡ Àü´ÞµÈ´Ù. ÇÔ¼ö abs( )´Â Àü´ÞµÈ °ªÀ» ÀÌ¿ëÇÏ¿© ÇÔ¼ö¸¦ ó¸®ÇÑ ÈÄ ±× °á°ú¸¦ ÇÔ¼öÀÇ °ªÀ¸·Î µÇµ¹¸°´Ù(returnÇÑ´Ù).
ÇÔ¼ö abs( )ÀÇ ½ÇÇàÀÌ ³¡³ª¸é Á¦¾î°¡ main( )ÇÔ¼ö·Î ¿Å°ÜÁø ÈÄ ÇÔ¼ö abs( )ÀÇ °ªÀÌ º¯¼ö result¿¡ ±â¾ïµÈ´Ù.
㽬 ÇÔ¼ö³»¿¡¼ return¹®À» ¸¸³ª¸é ÇÔ¼öÀÇ ½ÇÇàÀ» Á¾·áÇÏ°í È£ÃâÇÑ ÇÔ¼ö·Î Á¦¾î°¡ À̵¿µÈ ´Ù. µû¶ó¼ À§ ÇÔ¼ö abs ( )¸¦ ´ÙÀ½°ú °°ÀÌ ÀÛ¼ºÇÒ ¼ö ÀÖ´Ù.
int abs(int x) int abs(int x)
{ {
if ( x<0 ) return ( (x<0) ? -x : x);
return (x); }
else
return (-x);
}
¡º½Ç½À 6-05¡»¿¹Á¦ÇÁ·Î±×·¥
/*----------------------------------------------------------------------------------------------
* c6-05.c : °ÅµìÁ¦°ö ±¸ÇÏ´Â ÇÔ¼ö
*---------------------------------------------------------------------------------------------*/
int power(int x, int n)
{
int i, p=1;
for (i=1; i<=n; ++i)
p = p * x;
return (p);
}
main( )
{
int x, n, result;
printf("x,n= ? ");
scanf("%d, %d", &x, &n);
result = power(x, n);
printf("%d ^ %d = %d\n", x, n, result);
}
¢Ñ ½ÇÇà °á°ú ¢Ñ ½ÇÇà °á°ú
c>c6-05 c>c6-05
x,n= ? 3,2 x,n= ? 5,3
3 ^ 2 = 9 5 ^ 3 = 125
¡º½Ç½À 6-06¡»¿¹Á¦ÇÁ·Î±×·¥
/*----------------------------------------------------------------------------------------------
* c6-06.c : ÃÖ´ë°ø¾à¼ö ±¸ÇÏ´Â ÇÔ¼ö
*---------------------------------------------------------------------------------------------*/
int gcd(int u, int v)
{
int temp;
while ( v != 0 ) {
temp = u % v;
u = v;
v = temp;
}
return(u);
}
main( )
{
int a, b, result;
printf("a, b = ? ");
scanf("%d, %d", &a, &b);
printf("GCD(%d, %d) = %d\n", a, b, gcd(a,b));
}
¢Ñ ½ÇÇà °á°ú ¢Ñ ½ÇÇà °á°ú
c>c6-06 c>c6-06
a,b= ? 12,64 a,b= ? 240,128
GCD(12, 64) = 4 GCD(240, 128) = 16
¡¶¿¬½À 6¡·½ÇÇà °á°ú¿Í °°ÀÌ Å°º¸µå·Î nÀÇ °ªÀ» ÀÔ·ÂÇÏ¿© 1ºÎÅÍ n±îÁöÀÇ Á¤¼öÀÇ ÇÕÀ» ±¸ ÇÏ¿© Ãâ·ÂÇÏ´Â ÇÁ·Î±×·¥À» ÀÛ¼ºÇÏ¿©¶ó.
¢Ñ ½ÇÇà °á°ú
n = ? 10
sum = 55
¡¶¿¬½À 7¡·Á¤¼ö nÀ» ÀÔ·ÂÇÏ¿© 1 + (1+2) + (1+2+3) +......+(1+2+3+ +n)ÀÇ °è»ê °á°ú¸¦ Ãâ·ÂÇÏ´Â ÇÁ·Î±×·¥À» ÀÛ¼ºÇÏ¿©¶ó.
¡¶¿¬½À 8¡·Å°º¸µå·Î 3°³ÀÇ Á¤¼öÇü µ¥ÀÌÅ͸¦ ÀÔ·ÂÇÏ¿© ÃÖ¼Ò°ªÀ» ±¸ÇÏ¿© Ãâ·ÂÇÏ´Â ÇÁ·Î±×·¥ À» ÀÛ¼ºÇÏ¿©¶ó.
¡¶¿¬½À 9¡·Å°º¸µå·Î 10°³ÀÇ Á¤¼öÇü µ¥ÀÌÅ͸¦ ÀÔ·ÂÇÏ¿© ÃÖ´ë°ª°ú ÃÖ¼Ò°ªÀ» ±¸ÇÏ¿© Ãâ·ÂÇÏ ´Â ÇÁ·Î±×·¥À» ÀÛ¼ºÇÏ¿©¶ó.
¡¶¿¬½À 10¡·n°ú rÀÇ °ªÀ» ÀÔ·ÂÇÏ¿© ´ÙÀ½°ú °°Àº 2Ç× °è¼öÀÇ °ªÀ» ±¸ÇÏ¿© Ãâ·ÂÇÏ´Â ÇÁ·Î±× ·¥À» ÀÛ¼ºÇÏ¿©¶ó.
|
¢Ñ ½ÇÇà °á°ú ¢Ñ ½ÇÇà °á°ú
n,r = ? 3,2 n,r = ? 10,3
3 C 2 = 3 10 C 3 = 120
¡¶¿¬½À 11¡·Å°º¸µå·Î ³â, ¿ù, ÀÏÀ» ÀÔ·ÂÇÏ¿© ±× ³¯ÀÇ ¿äÀÏÀ» ±¸ÇÏ¿© Ãâ·ÂÇÏ´Â ÇÁ·Î±×·¥À» ÀÛ¼ºÇÏ¿©¶ó.
¡ØÂü°í: ¼±â 1³â 1¿ù 1ÀÏÀº ¿ù¿äÀÏÀÌ´Ù. ±×¸®°í ³âÀÌ 400À¸·Î ³ª´©¾îÁö¸é À±³â, 400À¸·Î ³ª´©¾î ÁöÁö ¾Ê°í 100À¸·Î¸¸ ³ª´©¾î Áö¸é Æò³â, 100À¸·Î ³ª´©¾î ÁöÁö ¾Ê°í 4·Î ³ª´©¾î Áö¸é À±³âÀÌ´Ù.
9. ¹Ýº¹ÀûÀÎ ÇÔ¼öÀÇ È£Ãâ
¾Æ·¡ÀÇ ¿¹¿¡¼¿Í °°ÀÌ È£ÃâµÈ ÇÔ¼ö°¡ ´Ù¸¥ ÇÔ¼ö¸¦ ´Ù½Ã È£ÃâÇÏ´Â °Íµµ °¡´ÉÇÏ´Ù.
¡º½Ç½À 6-07¡»¿¹Á¦ÇÁ·Î±×·¥
/*----------------------------------------------------------------------------------------------
* c6-07.c : ÇÔ¼ö¸¦ ¹Ýº¹ÀûÀ¸·Î È£ÃâÇÏ´Â ¿¹
*---------------------------------------------------------------------------------------------*/
float abs (float x) /* Àý´ë°ªÀ» °è»êÇÏ´Â ÇÔ¼ö */
{
return ( (x<0) ? -x : x);
}
float sqr(x) /* Æò¹æ±ÙÀ» °è»êÇÏ´Â ÇÔ¼ö */
float x;
{
float epsilon = .000001;
float guess = 1.0 ;
while ( abs ( guess * guess - x ) >= epsilon)
guess = ( x / guess + guess ) / 2.0;
return(guess);
}
main( )
{
float x, result;
printf("x = ? " );
scanf("%f", &x);
result = sqr(x);
printf("SQR(%.1f) = %f\n", x, result);
}
¢Ñ ½ÇÇà °á°ú ¢Ñ ½ÇÇà °á°ú
c>c6-07 c>c6-07
x = ? 2 x = 169
SQR(2.0) = 1.414214 SQR(169.0) = 13.000000
10. ÇÔ¼öÀÇ ¼øȯ (recursion)
ÇÔ¼ö´Â ´Ù¸¥ ÇÔ¼ö¸¦ È£ÃâÇÏ¿© ÀÌ¿ëÇÒ ¼ö ÀÖÀ» »Ó¸¸ ¾Æ´Ï¶ó ÀÚ±â ÀÚ½ÅÀÇ ÇÔ¼ö¸¦ ´Ù½Ã ºÒ·¯ »ç¿ëÇÒ ¼ö Àִµ¥ ÇÔ¼öÀÇ ÀÌ·¯ÇÑ ¼ºÁúÀ» ÇÔ¼öÀÇ ¼øȯ ¶Ç´Â µÇºÎ¸§À̶ó°í ÇÑ´Ù.
ÇÁ·Î±×·¥ ÀÛ¼º½Ã ÇÔ¼öÀÇ ¼øȯÀ» ÀÌ¿ëÇÏ¸é º¸´Ù È¿À²ÀûÀÎ ÇÁ·Î±×·¥À» ÀÛ¼º ÇÒ ¼ö ÀÖ´Ù.
¡º½Ç½À 6-08¡»¿¹Á¦ÇÁ·Î±×·¥
/*----------------------------------------------------------------------------------------------
* c6-08.c : ÇÔ¼öÀÇ ¼øȯÀ» ÀÌ¿ëÇÑ ¼ýÀÚ Ãâ·Â
*---------------------------------------------------------------------------------------------*/
int p(int n)
{
if (n>0) {
p(n-1);
printf("%3d",n);
}
}
main( )
{
p(10);
}
¢Ñ ½ÇÇà °á°ú
c>c6-08
1 2 3 4 5 6 7 8 9 10
¡¶¿¬½À 12¡·½ÇÇà °á°ú¿Í °°ÀÌ 10ºÎÅÍ 1±îÁöÀÇ ¼ýÀÚ¸¦ Ãâ·ÂÇÏ´Â ÇÁ·Î±×·¥À» ¼øȯÀ» ÀÌ¿ëÇÏ ¿© ÀÛ¼ºÇÏ¿©¶ó.
¢Ñ ½ÇÇà °á°ú
10 9 8 7 6 5 4 3 2 1
¡º½Ç½À 6-09¡»¿¹Á¦ÇÁ·Î±×·¥
/*----------------------------------------------------------------------------------------------
* c6-09.c : ÇÔ¼öÀÇ ¼øȯÀ» ÀÌ¿ëÇÑ factorialÀÇ °è»ê
*---------------------------------------------------------------------------------------------*/
long factorial (int f)
{
if (f<=1)
return(1);
else
return( f * factorial ( f - 1 ) );
}
main( )
{
int x;
long result;
printf("x = ? ");
scanf("%d", &x);
result = factorial(x);
printf("%d ! = %ld\n", x, result);
}
¢Ñ ½ÇÇà °á°ú
c>c6-09
x = ? 6
6 ! = 720
¢¹Çؼ³ : À§ ÇÁ·Î±×·¥ÀÇ ½ÇÇà °úÁ¤À» °³³äÀûÀ¸·Î Ç¥ÇöÇÏ¸é ´ÙÀ½°ú °°´Ù.
factorial(6) = 6 * factorial(5)
= 6 * 5 * factorial(4)
= 6 * 5 * 4 * factorial(3)
= 6 * 5 * 4 * 3 * factorial(2)
= 6 * 5 * 4 * 3 * 2 * factorial(1)
= 6 * 5 * 4 * 3 * 2 * 1
= 720
¡º½Ç½À 6-10¡»¿¹Á¦ÇÁ·Î±×·¥
/*----------------------------------------------------------------------------------------------
* c6-10.c : ÇÔ¼öÀÇ ¼øȯÀ» ÀÌ¿ëÇÑ ÃÖ¼Ò °ø¹è¼ö °è»ê
*---------------------------------------------------------------------------------------------*/
int gcd (int u, int v)
{
return ( v ? gcd(v, u%v) : u);
}
main ( )
{
int a, b, result;
printf("a,b= ? ");
scanf("%d, %d", &a, &b);
printf("GCD(%d,%d) = %d\n", a, b, gcd(a,b));
}
¢Ñ ½ÇÇà °á°ú ¢Ñ ½ÇÇà °á°ú
c>c6-10 c>c6-10
a,b= ? 12,64 a,b= ? 240,128
GCD(12, 64) = 4 GCD(240, 128) = 16
¡¶¿¬½À 13¡·À§ ÇÁ·Î±×·¥¿¡¼ ÇÔ¼ö gcd( )ÀÇ ½ÇÇà °úÁ¤À» °³³äÀûÀ¸·Î ¼³¸íÇÏ¿©¶ó.
¡¶¿¬½À 14¡·¾Æ·¡ÀÇ ½ÇÇà °á°ú¿Í °°ÀÌ 1ºÎÅÍ 10ÀÇ ¹è¼öµé±îÁöÀÇ ÇÕÀ» Ãâ·ÂÇÏ´Â ÇÁ·Î±×·¥À» ¼øȯÀ» ÀÌ¿ëÇÏ¿© ÀÛ¼ºÇÏ¿©¶ó.
¢Ñ ½ÇÇà °á°ú
1ºÎÅÍ 10±îÁöÀÇ ÇÕ = 55
1ºÎÅÍ 20±îÁöÀÇ ÇÕ = 210
1ºÎÅÍ 30±îÁöÀÇ ÇÕ = 465
1ºÎÅÍ 40±îÁöÀÇ ÇÕ = 820
1ºÎÅÍ 50±îÁöÀÇ ÇÕ = 1275
1ºÎÅÍ 60±îÁöÀÇ ÇÕ = 1830
1ºÎÅÍ 70±îÁöÀÇ ÇÕ = 2485
1ºÎÅÍ 80±îÁöÀÇ ÇÕ = 3240
1ºÎÅÍ 90±îÁöÀÇ ÇÕ = 4095
1ºÎÅÍ 100±îÁöÀÇ ÇÕ = 5050
¡¶¿¬½À 15¡·¾Æ·¡ÀÇ ½ÇÇà °á°ú¿Í °°ÀÌ nÀÇ °ªÀ» ÀÔ·Â¹Þ¾Æ nÀÇ 0½ÂºÎÅÍ 5½Â±îÁöÀÇ °ªÀ» Ãâ ·ÂÇÏ´Â ÇÁ·Î±×·¥À» ¼øȯÀ» ÀÌ¿ëÇÏ¿© ÀÛ¼ºÇÏ¿©¶ó.
¢Ñ ½ÇÇà °á°ú
n = ? 3
3 ^ 0 = 1
3 ^ 1 = 3
3 ^ 2 = 9
3 ^ 3 = 27
3 ^ 4 = 81
3 ^ 5 = 243
¡º½Ç½À 6-10¡»¿¹Á¦ÇÁ·Î±×·¥
/*----------------------------------------------------------------------------------------------
* c6-10.c : main( )ÇÔ¼öÀÇ È£Ãâ
*---------------------------------------------------------------------------------------------*/
main( )
{
static int i=0;
i++;
printf("%3d", i);
if (i != 10)
main( )
}
¢Ñ ½ÇÇà °á°ú
c>c6-10
1 2 3 4 5 6 7 8 9 10
11. ¸®ÅÏ°ªÀÌ ¾ø´Â ÇÔ¼ö (voidÇÔ¼ö)
ANSIÇ¥ÁØÀÇ C¾ð¾î¿¡¼´Â °ªÀ» ¹ÝȯÇÏÁö ¾Ê´Â ÇÔ¼ö¸¦ "voidÇü ÇÔ¼ö"¶ó°í ÇÑ´Ù. K&RÁ¤ÀÇ¿¡¼´Â ã¾Æº¼ ¼ö ¾ø´Ù. ANSI¿¡¼µµ Á¾·¡¿¡´Â °ªÀ» ¹ÝȯÇÏÁö ¾Ê´Â ÇÔ¼ö¸¦ intÇü°ú È¥¿ëÇÏ¿© ¿Ô´Âµ¥ ÃÖ±Ù¿¡ ¾ö°ÝÇÑ Çü¼±¾ðÀ» ÇÏ°íÀÚ ÇÏ´Â Ãß¼¼¿¡ µû¶ó voidÇü ÇÔ¼ö¸¦ Ãß°¡ÇÏ¿´´Ù.
¡º½Ç½À 6-11¡»¿¹Á¦ÇÁ·Î±×·¥
/*----------------------------------------------------------------------------------------------
* c6-11.c : voidÇÔ¼ö
*---------------------------------------------------------------------------------------------*/
void space(int blank)
{
int counter;
for ( counter=0; counter<=blank; counter++)
printf(" ");
}
void main( )
{
int counter;
for ( counter=0; counter<8; counter++ ) {
space(counter);
printf("ABCDEFGHIJK\n");
}
}
¢Ñ ½ÇÇà °á°ú
c>c6-11
ABCDEFGHIJK
ABCDEFGHIJK
ABCDEFGHIJK
ABCDEFGHIJK
ABCDEFGHIJK
ABCDEFGHIJK
ABCDEFGHIJK
ABCDEFGHIJK
12. ÇÔ¼ö¿Í ¹è¿
»ó¼ö³ª º¯¼ö ¶Ç´Â ¼ö½Ä µîÀÇ °ªÀÌ È£ÃâÇÒ ÇÔ¼ö¿¡ Àμö·Î ³Ñ°ÜÁú ¼ö ÀÖµíÀÌ ¹è¿ ¿ø¼ÒÀÇ °ªÀ̳ª ¹è¿ Àüü¸¦ ÇÔ¼ö¿¡ ³Ñ±æ ¼ö ÀÖ´Ù. ¿©±â¿¡¼´Â ¹è¿ÀÇ ¿ø¼Ò¿Í ¹è¿ Àüü¸¦ ÇÔ¼ö¿¡ Àμö·Î ³Ñ°Ü¼ ó¸®ÇÏ´Â ¹æ¹ý¿¡ ´ëÇÏ¿© ¾Ë¾Æº¸±â·Î ÇÑ´Ù.
1) ¹è¿ ¿ø¼Ò¸¦ Àμö·Î »ç¿ëÇÒ °æ¿ì
ÇϳªÀÇ ¹è¿ ¿ø¼ÒÀÇ °ªÀ» È£ÃâÇÒ ÇÔ¼ö¿¡ ½ÇÀμö·Î ³Ñ±â·Á¸é »ó¼ö³ª º¯¼ö µîÀ» ÇÔ¼öÀÇ ½ÇÀμö·Î »ç¿ëÇϵíÀÌ ¹è¿ÀÇ ¿ø¼Ò¸¦ ÇÔ¼öÀÇ ½ÇÀμö·Î »ç¿ëÇÏ¸é µÈ´Ù.
¡º½Ç½À 6-12¡»¹è¿ ¿ø¼Ò¸¦ ½ÇÀμö·Î »ç¿ëÇÏ´Â ¿¹
/*----------------------------------------------------------------------------------------------
* c6-12.c : 3ÀÇ ¹è¼öÀÎ ¹è¿ ¿ø¼ÒÀÇ °³¼ö¸¦ ±¸ÇÏ´Â ÇÁ·Î±×·¥
*---------------------------------------------------------------------------------------------*/
int sub(int x)
{
return ( ( x%3==0) ? 1 : 0 ) );
}
main( )
{
static int a[ ]={
128, 254, 123, 676, 235,
129, 756, 543, 239, 125
};
int i, sum=0;
for ( i=0; i<=9; i++)
sum += sub( a[i] );
printf("3ÀÇ ¹è¼öÀÇ °¹¼ö = %d\n", sum);
}
¢Ñ ½ÇÇà °á°ú
c>c6-12
3ÀÇ ¹è¼öÀÇ °³¼ö = 4
2) 1Â÷¿ø ¹è¿ Àüü¸¦ Àμö·Î »ç¿ëÇÒ °æ¿ì
¹è¿ ÀüüÀÇ ³»¿ëÀ» È£ÃâµÉ ÇÔ¼ö·Î Àü´ÞÇÒ ¶§¿¡´Â ¹è¿ÀÇ À̸§¸¸À» È£ÃâÇÏ´Â ÇÔ¼öÀÇ ½ÇÀμö·Î »ç¿ëÇÏ¸é µÈ´Ù. ¾Æ·¡ÀÇ ¿¹¿¡¼ ½±°Ô ÀÌÇØÇÒ ¼ö ÀÖÀ» °ÍÀÌ´Ù.
¡º½Ç½À 6-13¡»¹è¿ ¿ø¼Ò¸¦ ½ÇÀμö·Î »ç¿ëÇÏ´Â ¿¹
/*----------------------------------------------------------------------------------------------
* c6-12.c : ¹®ÀÚ¿ÀÇ ±æÀ̸¦ ±¸ÇÏ´Â ÇÁ·Î±×·¥
*---------------------------------------------------------------------------------------------*/
int strlen(x)
char x [ ];
{
int i=0;
while ( x[i] != '/0' )
i++;
return (i);
}
main( )
{
static char str[ ] = "Hong Gil Dong";
printf("\"%s\" = %d ¹®ÀÚ \n", str, strlen(str));
}
¢Ñ ½ÇÇà °á°ú
c>c6-13
"Hong Gil Dong" = 13¹®ÀÚ
㽬 main( )ÇÔ¼öÀÇ printf( )ÇÔ¼ö³»¿¡ »ç¿ëµÈ strÀÇ Àǹ̴ ´ÙÀ½°ú °°´Ù.
printf("\"Hong Gil Dong\", = %d ¹®ÀÚ\n", strlen(str));
¹è¿ strÀÇ Ã¹¹ø° ¿ø¼ÒÀÎ str[0]ÀÇ ¹øÁö¸¦↲
ÀǹÌ
¡¶¿¬½À 16¡·½ÇÇà °á°ú¿Í °°ÀÌ Å°º¸µå·Î ´ë¹®ÀÚµé·Î ±¸¼ºµÈ ´Ü¾î¸¦ ÀÔ·ÂÇÏ¸é ¼Ò¹®ÀÚ·Î ¹Ù ²Ù¾î Ãâ·ÂÇÏ´Â ÇÁ·Î±×·¥À» ÀÛ¼ºÇÏ¿©¶ó.
¢Ñ ½ÇÇà °á°ú
uppercese = ? KOREA
lowercase = korea
¡º½Ç½À 6-14¡»1Â÷¿ø ¹è¿À» ½ÇÀμö·Î »ç¿ëÇÏ´Â ¿¹
/*----------------------------------------------------------------------------------------------
* c6-14.c : ¹®ÀÚ¿À» °Å²Ù·Î Ãâ·ÂÇÏ´Â ÇÁ·Î±×·¥
*---------------------------------------------------------------------------------------------*/
reverse(x)
char x[ ];
{
int n;
for (n=5; n>=0; n--)
printf("%c", x[n]);
}
main( )
{
static char str[ ]="ABCDEF"
reverse(str);
}
¢Ñ ½ÇÇà °á°ú
c>c6-14
FEDCBA
¡º½Ç½À 6-15¡»1Â÷¿ø ¹è¿À» ½ÇÀμö·Î »ç¿ëÇÏ´Â ¿¹
/*----------------------------------------------------------------------------------------------
* c6-15.c : alphabet show
*---------------------------------------------------------------------------------------------*/
sub(x)
char x[ ];
{
printf("%s\n",x);
}
main( )
{
static char str[ ]="ABCDEFGHI";
int n;
for (n=8 ; n>=0; n--)
sub(&str[n]);
}
¢Ñ ½ÇÇà °á°ú
c>c6-15
I
HI
GHI
FGHI
EFGHI
DEFGHI
CDEFGHI
BCDEFGHI
ABCDEFGHI
¡º½Ç½À 6-16¡»1Â÷¿ø ¹è¿À» ½ÇÀμö·Î »ç¿ëÇÏ´Â ¿¹
/*----------------------------------------------------------------------------------------------
* c6-16.c : ºÐ·ù(sort)ÇÁ·Î±×·¥
*---------------------------------------------------------------------------------------------*/
sort(s, n)
int n, sl ];
{
int i, j, k, min;
for (i=0; i<n-1; i++) {
k=i
min=s[k];
for (j=j+1 ; j<n ; j++)
if ( s[j]<min ) {
k=j;
min = s[k];
}
s[k]=s[i];
s[i]=min;
}
}
main( )
{
int i, n=10;
static int a[ ] = {
21,53,46,93,12,34,24,23,75,11
};
sort(a,n);
for ( i=0; i<9; i++)
printf("%3d", a[i]);
}
¢Ñ ½ÇÇà °á°ú
c>c6-16
11 12 21 23 24 34 46 53 75
¡º½Ç½À 6-17¡»2Â÷¿ø ¹è¿À» 1Â÷¿ø ¹è¿·Î ó¸®ÇÏ´Â ¿¹
/*----------------------------------------------------------------------------------------------
* c6-17.c : 2Â÷¿ø ¹è¿À» 1Â÷¿ø ¹è¿·Î ó¸®ÇÏ´Â ¿¹
*---------------------------------------------------------------------------------------------*/
int tot(jum, n)
int jum[ ], n;
{
int index, sum=0;
for ( index = 0 ; index<n; index++)
sum += jum [index];
return (sum);
}
main( )
{
static int jum[5][4]={
{100, 78, 96, 100},
{ 98, 98, 32, 92},
{ 85, 57, 86, 59},
{ 76, 78, 77, 79},
{ 67, 90, 88, 85}
};
int line, col, jum_sum;
float jum_ave;
printf("============================\n");
printf(" ±¹¾î ¿µ¾î ¼öÇÐ Àü»ê ÃÑÁ¡ Æò±Õ \n");
printf("============================\n");
for ( line=0; line<5; line++)
for (col=0; col<4; col++)
print("%5d", jum[line][col]);
jum_sum = tot(jum[line], 4);
jum_ave = jum_sum / 4.;
printf("%6d%6.1f\n", jum_sum, jum_ave);
}
printf("=============================\n");
}
¢Ñ ½ÇÇà °á°ú
c>c6-17
============================
±¹¾î ¿µ¾î ¼öÇÐ Àü»ê ÃÑÁ¡ Æò±Õ
============================
100 78 96 100 374 93.5
98 98 32 92 381 95.3
85 57 86 59 287 71.8
76 78 77 79 310 77.5
67 90 88 85 330 82.5
============================
¡¶¿¬½À 17¡·½ÇÇà °á°ú¿Í °°ÀÌ <½Ç½À6-17>¿¡¼ »ç¿ëÇÑ µ¥ÀÌÅ͸¦ »ç¿ëÇÏ¿© ¾Æ·¡¿Í °°ÀÌ ÃÑ Á¡, Æò±Õ ¹× ¼®Â÷¸¦ °è»êÇÏ¿© Ãâ·ÂÇÏ´Â ÇÁ·Î±×·¥À» ÀÛ»óÇÏ¿©¶ó.
¢Ñ ½ÇÇà °á°ú
===============================
±¹¾î ¿µ¾î ¼öÇÐ Àü»ê ÃÑÁ¡ Æò±Õ ¼®Â÷
===============================
100 78 96 100 374 93.5 2
98 98 32 92 381 95.3 1
85 57 86 59 287 71.8 5
76 78 77 79 310 77.5 4
67 90 88 85 330 82.5 3
===============================
3) 2Â÷¿ø ¹è¿ Àüü¸¦ Àμö·Î »ç¿ëÇÒ °æ¿ì
¹è¿ ÀüüÀÇ ³»¿ëÀ» È£ÃâµÉ ÇÔ¼ö·Î Àü´ÞÇÒ ¶§¿¡´Â ¹è¿ÀÇ À̸§¸¸À» È£ÃâÇÏ´Â ÇÔ¼öÀÇ ½ÇÀμö·Î »ç¿ëÇÏ¸é µÈ´Ù. Áï 1Â÷¿ø ¹è¿À» ÇÔ¼ö¿¡ Àü´ÞÇÏ´Â ¹æ½Ä°ú ±Ùº»ÀûÀ¸·Î °°´Ù.
¡º½Ç½À 6-18¡»2Â÷¿ø ¹è¿À» 1Â÷¿ø ¹è¿·Î ó¸®ÇÏ´Â ¿¹
/*----------------------------------------------------------------------------------------------
* c6-18.c : 2Â÷¿ø ¹è¿À» ÇÔ¼ö·Î Àü´ÞÇÏ´Â ¿¹
*---------------------------------------------------------------------------------------------*/
int list(data)
int data[ ][4];
{
int i, j;
for ( i = 0 ; i<5; i++) {
for (j=0; j<4; j++)
printf("%5d", data[i][j]);
printf("\n");
}
}
main( )
{
static int jum[5][4]={
{100, 78, 96, 100},
{ 98, 98, 32, 92},
{ 85, 57, 86, 59},
{ 76, 78, 77, 79},
{ 67, 90, 88, 85}
};
list(jum);
}
¢Ñ ½ÇÇà °á°ú
100 78 96 10
98 98 32 92
85 57 86 59
76 78 77 79
67 90 88 85
¥¶. ±â¾ï Àå¼ÒÀÇ Á¾·ù
1. ±â¾ï Àå¼ÒÀÇ Á¾·ù (storage class)
ÄÄÇ»ÅÍ´Â µ¥ÀÌÅ͸¦ ±â¾ï½ÃÅ°´Â ±â¾ï Àå¼ÒÀÇ Å©±â°¡ Á¦ÇÑÀ» ¹Þ±â ¶§¹®¿¡ µÇµµ·ÏÀÌ¸é ±â¾ï Àå¼Ò¸¦ È¿À²ÀûÀ¸·Î ÀÌ¿ëÇϱâ À§ÇÏ¿© ¹®ÀÚÇü, Á¤¼öÇü, ½Ç¼öÇü µîÀ¸·Î µ¥ÀÌÅÍÀÇ ÇüÀ» ±¸ºÐÇÏ¿© »ç¿ëÇÑ´Ù´Â »ç½ÇÀº ÀÌ¹Ì ¾Ë°í ÀÖ´Â »ç½ÇÀÌ´Ù.
±×¸®°í ±â¾ï Àå¼ÒÀÇ Á¾·ù¿¡ µû¶ó ó¸® ¼Óµµ°¡ ´Ù¸£±â ¶§¹®¿¡ ÇÁ·Î±×·¥ÀÇ È¿À²¼ºÀ» ³ôÀ̱â À§ÇÏ¿© ÇÊ¿ä¿¡ µû¶ó ±â¾ïÀå¼Ò¸¦ ±¸ºÐÇÏ¿© »ç¿ëÇÑ´Ù.
¿¹¸¦ µé¸é ¾î¶² 󸮸¦ À§ÇÏ¿© Çѹø ¾²°í ¹ö·Áµµ µÇ´Â º¯¼öµéÀº ½ºÅÃ(stack)À̶ó´Â Àӽà ÀúÀå Àå¼Ò¿¡ ±â¾ï½ÃÄ×´Ù°¡ ÇÊ¿äÇÒ ¶§ ºÒ·¯ »ç¿ëÇϰųª °í¼ÓÀÇ ¿¬»ê 󸮸¦ À§ÇÏ¿© CPU³»ÀÇ ·¹Áö½ºÅÍ(register)¸¦ »ç¿ëÇÏ´Â °Í µîÀ» ±× ¿¹·Î µé¼ö ÀÖ´Ù.
ÀÌ·± ÀÌÀ¯·Î C¾ð¾î¿¡¼´Â ±â¾ï Àå¼ÒÀÇ Á¾·ù(storage class)¸¦ ´ÙÀ½ÀÇ 4°¡Áö Á¾·ù·Î ºÐ·ùÇÏ¿© »ç¿ëÇÑ´Ù.
+--------- auto (ÀÚµ¿ º¯¼ö)
+----------------+ +--------- static (Á¤Àû º¯¼ö)
|±â¾ïÀå¼ÒÀÇ Á¾·ù +-----+--------- extern (¿ÜºÎ º¯¼ö)
+----------------+ +--------- register (·¹Áö½ºÅÍ º¯¼ö)
À§ÀÇ °¢ º¯¼öµéÀº ¾Æ·¡¿Í °°Àº ±â¾ï Àå¼ÒµéÀÇ ¿µ¿ªÀ» »ç¿ëÇÑ´Ù.
Ↄ ½ºÅÃÀ̶ó´Â ¸Þ¸ð¸®»óÀÇ ÀϽÃÀû ¿µ¿ª auto
±â¾ï¿µ¿ª ⇒ º¸ÅëÀÇ ¸Þ¸ð¸®»óÀÇ ±â¾ï ¿µ¿ª static, extern
ↁ CPU³»ÀÇ ·¹Áö½ºÅÍ ¿µ¿ª register
2. auto º¯¼ö (ÀÚµ¿ º¯¼ö)
1) autoº¯¼öÀÇ °³³ä
autoº¯¼ö¶õ ¾î¶² ÇÔ¼öÀÇ ³»ºÎ³ª ¶Ç´Â ±× ÇÔ¼ö ³»ÀÇ º¹¹® ¾È¿¡¼ ¼±¾ðµÇ´Â º¯¼ö·Î¼ ±× º¯¼ö°¡ ¼±¾ðµÈ ÇÔ¼ö ¶Ç´Â º¹¹® ³»¿¡¼¸¸ »ç¿ëÇÒ ¼ö ÀÖ´Ù. ÀÌ·± ÀÌÀ¯·Î auto º¯¼ö¸¦ Áö¿ª º¯¼ö(local variable)¶ó°íµµ ÇÑ´Ù.
µû¶ó¼ auto º¯¼ö´Â °°Àº À̸§ÀÇ º¯¼ö¸¦ ´Ù¸¥ ÇÔ¼ö ³»¿¡¼ ¶Ç´Â ±× ÇÔ¼öÀÇ ´Ù¸¥ º¹¹®³»¿¡¼ »ç¿ëÇصµ ¼·Î »ó°ü¾øÀÌ µ¶¸³ÀûÀ¸·Î Ãë±ÞµÈ´Ù.
auto º¯¼ö´Â ¸Þ¸ð¸®ÀÇ ½ºÅÃ(¸Þ¸ð¸® Áß¿¡¼ µ¥ÀÌÅ͸¦ ÀϽÃÀûÀ¸·Î ±â¾ï½ÃÅ°´Â ¿µ¿ªÀ¸·Î¼ ³ªÁß¿¡ ÀÔ·ÂµÈ µ¥ÀÌÅ͸¦ ¸ÕÀú ²¨³»±â À§ÇØ »ç¿ëµÇ´Â ¿µ¿ª)¿¡ ÇÒ´çÇÏ´Â º¯¼ö·Î¼ auto º¯¼ö°¡ ¼±¾ðµÇ¾î ÀÖ´Â ÇÔ¼ö°¡ ½ÇÇàµÊ°ú µ¿½Ã¿¡ »ý¼ºµÇ¸ç ÇÔ¼öÀÇ ½ÇÇàÀÌ Á¾·áµÊ°ú µ¿½Ã¿¡ ÀÚµ¿ÀûÀ¸·Î ¼Ò¸êµÈ´Ù.
auto º¯¼ö´Â ÇÔ¼ö°¡ ½ÃÀ۵Ǿî¾ß »ý¼ºµÇ±â ¶§¹®¿¡ ÄÄÆÄÀÏ(compile)½Ã¿¡ ÃʱâÈ µÇÁö ¾Ê´Â´Ù. µû¶ó¼ auto º¯¼ö¸¦ ¼±¾ðÇÒ ¶§ ÃʱâÄ¡¸¦ ÁöÁ¤ÇÏÁö ¾ÊÀ¸¸é ºÎÁ¤Ä¡(garbage:¾²·¹±â°ª)¸¦ °®°Ô µÇ¹Ç·Î ¹Ýµå½Ã ÃʱâÄ¡¸¦ ºÎ¿©Ç× ÈÄ¿¡ »ç¿ëÇÏ¿©¾ß ÇÑ´Ù.
2) autoº¯¼öÀÇ ¼±¾ð
auto º¯¼ö´Â ´ÙÀ½°ú °°Àº Çü½ÄÀ¸·Î ¼±¾ðÇÑ´Ù.
<ÀϹÝÇü½Ä>
auto µ¥ÀÌÅÍÇü º¯¼ö1, º¯¼ö2 |
C¾ð¾î¿¡¼ »ç¿ëµÇ´Â ´ëºÎºÐÀÇ º¯¼ö´Â autoº¯¼öÀ̱⠶§¹®¿¡ auto¶ó°í ±â¼úÇÏÁö ¾Ê¾Æµµ auto º¯¼ö·Î ÀÎÁ¤µÈ´Ù. ¿¹¸¦ µé¸é ¾Æ·¡ÀÇ µÎ ¼±¾ð¹®Àº °°Àº Àǹ̸¦ °®´Â´Ù.
¡º ½Ç½À 7-01 ¡» ¿¹Á¦ ÇÁ·Î±×·¥
/*------------------------------------------------------------------------------------------------
* c7-01.c : auto º¯¼öÀÇ »ç¿ë ¿¹
*------------------------------------------------------------------------------------------------*/
main( )
{
int s=10; /* auto º¯¼ö s¸¦ ù¹ø° ¼±¾ð */
{
int s=20; /* ºí·°³»¿¡ auto º¯¼ö s¸¦ µÎ¹ø° ¼±¾ð */
{
int s=30; /* ºí·°³»¿¡ auto º¯¼ö s¸¦ ¼¼¹ø° ¼±¾ð */
printf("s(3) = %d\n", s);
}
printf("s(2) = %d\n", s);
}
printf("s(1) = %d\n", s);
}
¢Ñ½ÇÇà °á°ú
c>07-01
s(3) = 30
s(2) = 20
s(1) = 10
⼓ Çؼ³
À§ ½ÇÇà °á°ú¿¡¼ ¾Ë ¼ö ÀÖµíÀÌ ÀÚµ¿ º¯¼ö´Â ÇÔ¼ö³»ÀÇ ºí·°(º¹¹®)³»¿¡¼ ¼±¾ðµÉ °æ¿ì ¿¡´Â ±× ºí·° ³»¿¡¼¸¸ Åë¿ëµÊÀ» ¾Ë ¼ö ÀÖ´Ù.
¡º ½Ç½À 7-02 ¡»¿¹Á¦ ÇÁ·Î±×·¥
/*------------------------------------------------------------------------------------------------
* c7-02.c : auto º¯¼öÀÇ »ç¿ë ¿¹
*------------------------------------------------------------------------------------------------*/
sub( )
{
int i, sum=0;
for ( i=1; i<=10; i++ )
sum += i;
printf("sum = %d\n", sum);
}
main( )
{
int sum=0;
sub( );
printf("sum = %d\n", sum);
}
¢Ñ½ÇÇà °á°ú
c>07-02
sum = 55 sub( )ÇÔ¼öÀÇ ½ÇÇà °á°ú
sum = 0 main( )ÇÔ¼öÀÇ ½ÇÇà °á°ú
⼓ Çؼ³
ÇÔ¼ö sub( )¿Í main( )¿¡¼ »ç¿ëµÈ autoº¯¼ö sumÀº °¢ ÇÔ¼ö ³»¿¡¼¸¸ À¯È¿ÇÏ´Ù.
¡¶¿¬½À 1¡·¾Æ·¡ÀÇ ÇÁ·Î±×·¥Àº 1ºÎÅÍ 100±îÁöÀÇ ÇÕÀ» °è»êÇÏ¿© Ãâ·ÂÇÏ´Â ÇÁ·Î±×·¥ÀÌ´Ù. ¿¹ »óÇÏ´Â °á°ú°¡ Ãâ·ÂµÇÁö ¾ÊÀ» °ÍÀÌ´Ù. ±× ÀÌÀ¯¸¦ ¼³¸íÇÏ°í À߸øµÈ ºÎºÐÀ» ¼öÁ¤ ÇÏ¿© ÇÁ·Î±×·¥À» ¿Ï¼ºÇÏ¿©¶ó.
main( )
{
int i, sum;
for ( i=1; i<=100; i++ )
sum = sum +i;
printf("sum = %d\n", sum);
}
¡¶¿¬½À 2¡·¾Æ·¡ ÇÁ·Î±×·¥Àº 1ºÎÅÍ 10±îÁöÀÇ ¼ýÀÚ¸¦ Ãâ·ÂÇϱâ À§ÇÏ¿© ÀÛ¼ºÇÑ ÇÁ·Î±×·¥Àε¥ ¿øÇÏ´Â °á°ú°¡ Ãâ·ÂµÇÁö ¾Ê¾Ò´Ù. ±× ÀÌÀ¯¸¦ ¼³¸íÇÏ°í À߸øµÈ ºÎºÐÀ» ¼öÁ¤ÇÏ¿© ÇÁ·Î±×·¥À» ¿Ï¼ºÇÏ¿©¶ó.
sub( )
{
i++;
printf("%4d", i);
}
main( )
{
int i=0;
while (i<=10)
sub( );
}
3. static º¯¼ö ( Á¤Àû º¯¼ö )
1) static º¯¼öÀÇ °³³ä
½ºÅØÀ» »ç¿ëÇÏ´Â auto º¯¼ö´Â ±× ¼ö¸íÀÌ ¿µ±¸ÀûÀÌÁö ¸øÇÏ°í ÇÔ¼ö³ª ºí·°ÀÇ ½ÇÇàÀÌ Á¾·áµÊ°ú µ¿½Ã¿¡ ÀÚµ¿ÀûÀ¸·Î ¼Ò¸êµÈ´Ù. µû¶ó¼ auto º¯¼ö´Â ¿©·¯ ºí·°À¸·Î ±¸¼ºµÈ ÇÁ·Î±×·¥À̳ª ¿©·¯ ÇÔ¼ö(¸ðµâ)µé·Î ±¸¼ºµÈ ÇÁ·Î±×·¥¿¡¼ °øÅëÀûÀ¸·Î »ç¿ëÇÒ º¯¼ö·Î´Â ÀûÇÕÇÏÁö ¸øÇÏ´Ù. ÀÌ·¯ÇÑ °æ¿ì¿¡ »ç¿ëÇÏ´Â º¯¼ö°¡ static º¯¼öÀÌ´Ù.
static º¯¼ö´Â Á¤Àû ¿µ¿ªÀÇ ¸Þ¸ð¸®¿¡ ÇÒ´çÇϱ⠶§¹®¿¡ ÇÁ·Î±×·¥ÀÇ ½ÃÀÛ¿¡¼ ½ÇÇàÀÌ Á¾°áµÉ ¶§±îÁö ¸Þ¸ð¸® ¼Ó¿¡ À¯ÁöµÈ´Ù. µû¶ó¼ ÇÁ·Î±×·¥ÀÌ ½ÇÇàµÇ´Â µµÁß¿¡´Â º¯¼öÀÇ °ªÀÌ ±×´ë·Î À¯ÁöµÇ±â ¶§¹®¿¡ ´Ù¸¥ ºí·°À̳ª ´Ù¸¥ ¸ðµâ¿¡¼µµ »ç¿ëÀÌ °¡´ÉÇÏ´Ù.
autoº¯¼ö¸¦ ¼±¾ðÇÒ ¶§ ÃʱâÄ¡¸¦ ºÎ¿©ÇÏÁö ¾ÊÀ¸¸é ºÎÁ¤Ä¡(¾²·¹±â°ª)¸¦ °®°Ô µÇ³ª staticº¯¼ö¸¦ ¼±¾ðÇÒ ¶§ ÃʱâÄ¡¸¦ ºÎ¿©ÇÏÁö ¾ÊÀ¸¸é ÃʱⰪÀº 0ÀÌ µÈ´Ù.
2) static º¯¼öÀÇ ¼±¾ð
static º¯¼ö´Â ´ÙÀ½°ú °°Àº Çü½ÄÀ¸·Î ¼±¾ðÇÑ´Ù.
<ÀϹÝÇü½Ä>
static µ¥ÀÌÅÍÇü º¯¼ö1, º¯¼ö2 |
[º¸±â] static º¯¼öÀÇ ¼±¾ð ¿¹
static int number;
static º¯¼ö´Â ÇÔ¼öÀÇ ³»ºÎ¿¡ ¼±¾ðÇÏ´Â °æ¿ì¿Í ÇÔ¼öÀÇ ¿ÜºÎ¿¡ ¼±¾ðÇÏ´Â °æ¿ì¿¡ µû¶ó ±× ¿ªÇÒÀÌ ´Þ¶óÁö°Ô µÇ´Âµ¥ ÀÌ µÎ °æ¿ì¿¡ °³ÇÏ¿© ¾Ë¾Æº¸ÀÚ.
3) ÇÔ¼öÀÇ ³»ºÎ¿¡ static º¯¼ö¸¦ ¼±¾ðÇÒ °æ¿ì
ÇÔ¼ö ³»ºÎ¿¡ staticº¯¼ö¸¦ ¼±¾ðÇÏ¸é ±× ÇÔ¼ö¿¡¼¸¸ »ç¿ëÇÒ ¼ö ÀÖ´Â Áö¿ªº¯¼ö°¡ µÈ´Ù. auto º¯¼ö¿ÍÀÇ Â÷ÀÌÁ¡Àº ½ºÅØÀ» º¯¼öÀÇ ¿µ¿ªÀ¸·Î »ç¿ëÇÏ´Â °ÍÀÌ ¾Æ´Ï¶ó ¸Þ¸ð¸®¸¦ º¯¼öÀÇ ¿µ¿ªÀ¸·Î »ç¿ëÇϱ⠶§¹®¿¡ static º¯¼ö´Â ÇÁ·Î±×·¥ÀÇ ½ÃÀÛºÎÅÍ ÇÁ·Î±×·¥ÀÇ ½ÇÇàÀÌ Á¾·áµÉ ¶§±îÁö º¯¼öÀÇ °ªÀÌ º¸Á¸µÈ´Ù.
¡º ½Ç½À 7-03 ¡»¿¹Á¦ ÇÁ·Î±×·¥
/*------------------------------------------------------------------------------------------------
* c7-03.c : statis º¯¼öÀÇ »ç¿ë ¿¹(1)
*------------------------------------------------------------------------------------------------*/
main( )
{
static int sum=0;
{
sum = sum +10;
{
sum = sum + 10;
printf("sum(3) = %d\n", sum);
}
sum = sum +10;
printf("sum(2) = %d\n", sum);
}
sum = sum + 10 ;
printf("sum(1) = %d\n", sum);
}
¢Ñ½ÇÇà °á°ú
c>07-03
sum(3) = 20
sum(2) = 30
sum(1) = 40
¡º ½Ç½À 7-04 ¡»¿¹Á¦ ÇÁ·Î±×·¥
/*------------------------------------------------------------------------------------------------
* c7-04.c : statis º¯¼öÀÇ »ç¿ë ¿¹(2)
*------------------------------------------------------------------------------------------------*/
main( )
{
static int counter, sum; /* counter°ú sumÀÇ ÃʱâÄ¡´Â 0ÀÌµÊ */
auto int, mul;
while (counter<=10) {
sum += counter; /* ºí·°³»¿¡¼ staticº¯¼ö sum°ú counter»ç¿ë */
counter++;
}
printf("sum(1~10) = %d\n", sum);
mul = 10 * sum;
printf("10 * sum = %d\n", mul);
}
¢Ñ½ÇÇà °á°ú
c>07-04
sum(1~10) = 55
10 *sum = 550
¡º ½Ç½À 7-05 ¡»¿¹Á¦ ÇÁ·Î±×·¥
/*------------------------------------------------------------------------------------------------
* c7-05.c : autoº¯¼ö¿Í statis º¯¼öÀÇ ºñ±³
*------------------------------------------------------------------------------------------------*/
main( )
{
auto int i=1;
static int k=1;
printf(" i = %3d k = %3d\n", i, k);
i++, k++;
}
main( )
{
int i;
printf("autoº¯¼ö staticº¯¼ö\n");
printf("-------------------------------------\n");
for ( i=1; i<=5; i++ )
sum( );
}
¢Ñ½ÇÇà °á°ú
c>07-05
auto º¯¼ö static º¯¼ö
-------------------------------------------
i = 1 k = 1
i = 1 k = 2
i = 1 k = 3
i = 1 k = 4
i = 1 k = 5
3) ÇÔ¼öÀÇ ¿ÜºÎ¿¡ static º¯¼ö¸¦ ¼±¾ðÇÒ °æ¿ì
ÇÔ¼ö ¿ÜºÎ¿¡¼ static º¯¼ö¸¦ ¼±¾ðÇÏ¸é ±× ÇÁ·Î±×·¥(¿©·¯°³ÀÇ ÇÔ¼ö·Î ±¸¼ºµÈ ÇÁ·Î±×·¥) ³»ÀÇ ¾î´À °÷¿¡¼µçÁö »ç¿ëÀÌ °¡´ÉÇÑ º¯¼ö°¡ µÈ´Ù.
ÇÔ¼ö ³»ºÎ¿¡ static º¯¼ö¸¦ ¼±¾ðÇÒ ¶§¿Í ¸¶Âù°¡Áö·Î ¸Þ¸ð¸® ³»¿¡ º¯¼ö°¡ È®º¸µÇ±â ¶§¹®¿¡ ±× º¯¼öÀÇ °ªÀº ÇÁ·Î±×·¥ÀÌ Á¾·áµÉ ¶§±îÁö º¸Á¸µÈ´Ù.
¡º ½Ç½À 7-06 ¡»¿¹Á¦ ÇÁ·Î±×·¥
/*------------------------------------------------------------------------------------------------
* c7-06.c : ÇÔ¼ö ¿ÜºÎÀÇ statis º¯¼ö ¼±¾ð ¿¹
*------------------------------------------------------------------------------------------------*/
static int, number;
add( )
{
number++;
return( number );
}
main( )
{
int i, sum=0;
for ( i=1; i<=10; i++ )
sum += add( );
printf("sum = %d", sum);
}
¢Ñ½ÇÇà °á°ú
c>07-06
sum = 55
¡º ½Ç½À 7-07 ¡»¿¹Á¦ ÇÁ·Î±×·¥
/*------------------------------------------------------------------------------------------------
* c7-07.c : ÇÔ¼ö ¿ÜºÎÀÇ statis º¯¼ö ¼±¾ð ¿¹
*------------------------------------------------------------------------------------------------*/
static int, n, sum;
add( x)
int x;
{
while ( n<x) {
n++;
sum += n;
}
}
main( )
{
int i;
for ( i=10; i<=100; i+=10) {
add(i);
printf("sum(1~%3d) = %4d\n", i, sum);
}
}
¢Ñ½ÇÇà °á°ú
c>07-07
sum( 1~10 ) = 55
sum( 1~20 ) = 210
sum( 1~30 ) = 465
sum( 1~40 ) = 820
sum( 1~50 ) = 1275
sum( 1~60 ) = 1830
sum( 1~70 ) = 2485
sum( 1~80 ) = 3240
sum( 1~90 ) = 4095
sum( 1~100 ) = 5050
㽬 ÇÔ¼öÀÇ ¿ÜºÎ¿¡¼ static º¯¼ö¸¦ ¼±¾ðÇÑ ÈÄ ³ÐÀº ¿µ¿ª¿¡ °ÉÃļ ÂüÁ¶ÇÏ´Â °ÍÀº µÇµµ·Ï »ï°¡ÇÏ´Â °ÍÀÌ ÁÁ´Ù. µÇµµ·ÏÀ̸é Çϳª ÇϳªÀÇ ±â´ÉÀ» ¼öÇàÇÏ´Â º¯¼öµéÀ» »ç¿ëÇÏ´Â °Í ÀÌ ÁÁÀ¸¸ç ÇÔ¼öµé °£ÀÇ Åë½ÅÀº Àμö¿Í ÇÔ¼öÀÇ ¸®ÅÏ°ª¿¡ ÀÇÇÏ¿© ¼öÇàµÇµµ·Ï ÇÏ´Â °ÍÀÌ ¹Ù¶÷Á÷ÇÏ´Ù.
¡º ½Ç½À 7-08 ¡»¿¹Á¦ ÇÁ·Î±×·¥
/*------------------------------------------------------------------------------------------------
* c7-08.c : statis º¯¼öÀÇ »ç¿ë¿¹
*------------------------------------------------------------------------------------------------*/
static int a=100;
static int b=200;
static int sol;
plus( )
{
sol = a + b;
}
minus( )
{
sol = a - b;
}
main( )
{
plus( );
printf("%d + %d = %d\n", a, b, sol);
minus( );
printf("%d - %d = %d\n", a, b, sol);
}
¢Ñ½ÇÇà °á°ú
c>07-08
100 + 200 = 300
100 - 200 = -100
¡º ½Ç½À 7-09 ¡»¿¹Á¦ ÇÁ·Î±×·¥
/*------------------------------------------------------------------------------------------------
* c7-09.c : statis ¹è¿ÀÇ »ç¿ë¿¹
*------------------------------------------------------------------------------------------------*/
static char str[6];
function( )
{
str[0]='K', str[1]='o', str[2]='r';
str[3]='e', str[4]='a', str[5]='n';
}
main( )
{
int k;
function( );
for ( k=0; k<6; k++ )
printf("str[%d] = %c\n", k, str[k]);
}
¢Ñ½ÇÇà °á°ú
c>07-09
str[0] = K
str[1] = o
str[2] = r
str[3] = e
str[4] = a
str[5] = n
¡¶¿¬½À 3¡·´ÙÀ½ ÇÁ·Î±×·¥Àº Å°º¸µå·Î ÀÔ·ÂÇÑ Á¤¼öÀÇ Á¦°öÀ» nȸ ¼öÇàÇϱâ À§ÇÑ ÇÁ·Î±×·¥ ÀÌ´Ù. À߸øµÈ °÷À» ã¾Æ ¿Ã¹Ù¸£°Ô ¼öÁ¤ÇÏ¿©¶ó.
int n;
int square(int x)
{
n = x * x;
return n;
}
main( )
{
int i, x;
printf("Ƚ¼ö = ? ");
scanf("%d", &n);
for ( i=0; i<n; i++ ) {
print("x = ? ");
scanf("%d", &x);
printf("%d ^ 2 = %d\n", x, square(x));
}
}
4. register º¯¼ö (·¹Áö½ºÅÍ º¯¼ö)
1) register º¯¼öÀÇ °³³ä
ÀϹÝÀûÀ¸·Î ÄÄÇ»ÅäÀÇ CPU³»¿¡´Â ¿¬»ê ó¸®ÀÇ °í¼Óȸ¦ À§ÇÑ ÀåÄ¡·Î ·¹Áö½ºÅÍ°¡ ÁغñµÇ¾î ÀÖ´Ù. ·¹Áö½ºÅÍ º¯¼ö¶õ ¿¬»ê ó¸®ÀÇ °í¼Óȸ¦ À§ÇÏ¿© º¯¼ö ¿µ¿ªÀ¸·Î ·¹Áö½ºÅ͸¦ »ç¿ëÇÏ´Â º¯¼ö¸¦ ¸»ÇÑ´Ù.
CPU¿¡ µû¶ó¼ ·¹Áö½ºÅÍÀÇ °³¼ö°¡ ¼·Î ´Ù¸£¹Ç·Î »ç¿ëÇÒ ¼ö ÀÖ´Â ·¹Áö½ºÅÍ º¯¼ö´Â ÄÄÇ»ÅÍ¿¡ µû¶ó ´Ù¸¦¼ö ÀÖÀ¸³ª ÀϹÝÀûÀ¸·Î 3°³±îÁöÀÇ ·¹Áö½ºÅÍ º¯¼ö¸¦ »ç¿ëÇÒ ¼ö ÀÖ´Ù. µû¶ó¼ 3°³ ÀÌ»óÀÇ ·¹Áö½ºÅÍ º¯¼ö¸¦ ¼±¾ðÇÑ °æ¿ì¿¡´Â ÃÖÃÊÀÇ 3°³´Â ·¹Áö½ºÅÍ º¯¼ö·Î »ç¿ëµÇ³ª ±× ³ª¸ÓÁöÀÇ ·¹Áö½ºÅÍ º¯¼öµéÀº autoº¯¼ö·Î 󸮵ȴÙ.
·¹Áö½ºÅÍ º¯¼ö´Â ¸ðµç ±â¾ï Àå¼ÒÀÇ Á¾·ù¸¦ »ç¿ëÇÒ ¼ö ÀÖ´Â °ÍÀÌ ¾Æ´Ï¶ó auto º¯¼ö¿Í ÇÔ¼öÀÇ °¡Àμö(formal parameter)¿¡ ´ëÇؼ¸¸ ¼±¾ðÇÒ ¼ö ÀÖ´Ù.
2) register º¯¼öÀÇ ¼±¾ð
register º¯¼ö´Â ´ÙÀ½°ú °°Àº Çü½ÄÀ¸·Î ¼±¾ðÇÑ´Ù.
<ÀϹÝÇü½Ä>
register µ¥ÀÌÅÍÇü º¯¼ö1, º¯¼ö2 |
[º¸±â] register º¯¼öÀÇ ¼±¾ð ¿¹
register int number;
register char str;
¡º ½Ç½À 7-10 ¡»¿¹Á¦ ÇÁ·Î±×·¥
/*------------------------------------------------------------------------------------------------
* c7-10.c : register º¯¼öÀÇ »ç¿ë¿¹
*------------------------------------------------------------------------------------------------*/
main( )
{
register int n, sum=0;
for ( n=1 ; n<=100; n++ )
sum += n;
printf("ÇÕ = %d\n", sum);
}
¢Ñ½ÇÇà °á°ú
c>07-10
ÇÕ = 5050
㽬 register º¯¼öÀÇ ¹øÁö´Â ±¸ÇÒ ¼ö ¾ø±â ¶§¹®¿¡ register º¯¼ö¿¡ ¹øÁö ¿¬»êÀÚ &´Â »ç¿ëÇÒ ¼ö ¾ø´Ù.
¡º ½Ç½À 7-11 ¡»¿¹Á¦ ÇÁ·Î±×·¥
/*------------------------------------------------------------------------------------------------
* c7-11.c : register º¯¼öÀÇ »ç¿ë¿¹
*------------------------------------------------------------------------------------------------*/
double power( x, n )
register int x, n;
{
register int i;
double p=1;
for ( i=1; i<=n; i++ )
p = p * x;
return(p);
}
main( )
{
int x, n;
printf("x, n = ? ");
scanf("%d, %d", &x, &n);
printf("%d ^ %d = %f\n", x, n, power(x, n));
}
¢Ñ½ÇÇà °á°ú
c>07-11
x, n = ? 10,5
10 ^ 5 = 100000.000000
¥·. Æ÷ ÀÎ ÅÍ
1. Æ÷ÀÎÅÍÀÇ °³³ä
C¾ð¾î¿¡¼ °¡Àå ´ëÇ¥ÀûÀΠƯ¡À» µé¶ó¸é Æ÷ÀÎÅÍ(pointer)¸¦ µé ¼ö ÀÖ´Ù. Æ÷ÀÎÅÍ´Â ´Ù¸¥ ¾ð¾î¿¡¼´Â ã¾Æº¸±â ¾î·Á¿î °³³äÀ¸·Î¼ ¸Þ¸ð¸® °ü·Ã Á¶ÀÛÀ» °£°áÇϸ鼵µ È¿À²ÀûÀ¸·Î Á¦¾îÇÒ ¼ö ÀÖµµ·Ï Áö¿øÇÏ´Â ±â´ÉÀÌ´Ù.
Æ÷ÀÎÅÍ´Â CÀÇ °¡Àå °·ÂÇÑ Æ¯Â¡À¸·Î¼ Àß »ç¿ëÇϸé ÇÁ·Î±×·¥ÀÇ È¿À²À» Çâ»ó ½Ãų ¼ö ÀÖ´Â ¹Ý¸é¿¡ À߸ø »ç¿ëÇÏ¸é ½Ã½ºÅÛÀ» ´Ù¿î ½ÃÅ°°Å³ª ¹ß°ßÇϱâ Èûµç ¹ö±×(bug:¿À·ù)¸¦ ¾ß±â ½Ãų ¼ö ÀÖÀ¸¹Ç·Î »ç¿ë¿¡ Ưº°È÷ À¯ÀÇÇØ¾ß ÇÑ´Ù.
Æ÷ÀÎÅ͸¦ ÇÑ ¸¶µð·Î Ç¥ÇöÇÏ¸é ¸Þ¸ð¸®ÀÇ ¹øÁö(address)¸¦ ±âÈ£ÈÇÑ °ÍÀ̶ó°í Á¤ÀÇÇÒ ¼ö ÀÖ´Ù. Áï Æ÷ÀÎÅÍ´Â ¸Þ¸ð¸®ÀÇ ¹øÁö¶ó°í Á¤ÀÇÇÒ ¼ö ÀÖÀ¸¸ç ¹øÁö¸¦ °ü¸®Çϱâ À§ÇÑ ¸ñÀûÀ¸·Î »ç¿ëµÈ´Ù. ´Ù½Ã ¸»Çؼ Æ÷ÀÎÅͶõ ½ÇÁ¦·Î Á¸ÀçÇÏ´Â ¸Þ¸ð¸®¿¡ ±â¾ïµÇ¾î ÀÖ´Â °ªÀ» ÀǹÌÇÏ´Â °ÍÀÌ ¾Æ´Ï¶ó ¸Þ¸ð¸®ÀÇ ¹øÁö¸¦ ÀǹÌÇÑ´Ù.
¡Ø ¹øÁö¶õ ¸Þ¸ð¸®ÀÇ Æ¯Á¤ À§Ä¡¸¦ ¼ýÀÚ(ÁÖ·Î 16Áø¼ö)·Î Ç¥ÇöÇÏ´Â °ÍÀ¸·Î º¯¼ö¸¦ ±¸º°Çϱâ À§ÇÏ¿© »ç¿ëµÇ´Â ·¹À̺í(label)À̶ó°í »ý°¢ÇÒ ¼ö ÀÖ´Ù.
2. Æ÷ÀÎÅÍÀÇ ¿¬»ê
Æ÷ÀÎÅÍ º¯¼ö¶õ Æ÷ÀÎÅÍÀÇ °ª Áï ¸Þ¸ð¸®ÀÇ ¹øÁö¸¦ ÀúÀåÇÏ´Â º¯¼ö¸¦ ÀǹÌÇÑ´Ù.
Æ÷ÀÎÅÍ º¯¼ö´Â Æ÷ÀÎÅÍ ¿¬»êÀÚ * (asterisk)¸¦ »ç¿ëÇÏ¿© ¼±¾ðÇÑ´Ù. ±×¿¹¸¦ µé¸é ´ÙÀ½°ú °°´Ù.
[º¸±â] Æ÷ÀÎÅÍ º¯¼öÀÇ ¼±¾ð ¿¹
int *pointer; /* intÇü Æ÷ÀÎÅÍ º¯¼ö pointer¸¦ ¼±¾ð */
char *ch; /* charÇü Æ÷¾ÈÅÍ º¯¼ö ch¸¦ ¼±¾ð */
À§ ¿¹¿¡¼ *pointer³ª *ch´Â Æ÷ÀÎÅÍ º¯¼ö°¡ ¾Æ´Ï´Ù. Æ÷ÀÎÅÍ º¯¼ö´Â pointer¿Í chÀÌ´Ù. ±×¸®°í Æ÷ÀÎÅÍ º¯¼ö pointerÀÇ ÇüÀÌ intÇü µ¥ÀÌÅͶó´Â Àǹ̰¡ ¾Æ´Ï°í pointer¶ó´Â º¯¼ö¸¦ ÅëÇؼ ÂüÁ¶ÇÒ ¼ö ÀÖ´Â ¹øÁö¿¡ ±â¾ïµÇ¾î ÀÖ´Â µ¥ÀÌÅÍÀÇ ÇüÀÌ intÇüÀ̶ó´Â ÀǹÌÀÌ´Ù. ¸¸ÀÏ pointer = 1230; À̶ó´Â ¹®ÀåÀÌ ½ÇÇàµÇ¸é *pointer´Â ¸Þ¸ð¸®ÀÇ 1230¹øÁö¿¡ ±â¾ïµÇ¾î ÀÖ´Â µ¥ÀÌÅ͸¦ ÀǹÌÇÑ´Ù. ´Ù½Ã ¸»Çؼ int *pointer; ¿Í °°ÀÌ ¼±¾ðÇϸé pointer´Â ¸Þ¸ð¸® ÁßÀÇ Æ¯Á¤ À§Ä¡¸¦ °¡¸®Å°´Â Æ÷ÀÎÅÍ º¯¼ö·Î µ¿ÀÛÇÏ°í *pointer´Â ±×°÷¿¡ ¼ö·ÏµÇ¾î ÀÖ´Â µ¥ÀÌÅ͸¦ ÀǹÌÇÑ´Ù.
3. Æ÷ÀÎÅÍ ¿¬»êÀÚ
C¾ð¾î¿¡¼´Â Æ÷ÀÎÅÍ ¿¬»êÀ» À§ÇÏ¿© ´ÙÀ½°ú °°Àº 2Á¾·ùÀÇ ¿¬»êÀÚ¸¦ ÁغñÇÏ°í ÀÖ´Ù.
1) &¿¬»êÀÚ ( ¹øÁö ¿¬»êÀÚ )
Á¦¥±Àå¿¡¼ scanf( )ÇÔ¼ö·Î µ¥ÀÌÅ͸¦ ÀÔ·ÂÇÏ·Á¸é ¹«Á¶°Ç º¯¼ö¸í ¾Õ¿¡ &±âÈ£¸¦ ºÙÀδٴ °ÍÀ» ¼³¸íÇÑ ¹Ù Àִµ¥ ÀÌ°ÍÀÌ ¹Ù·Î ¹øÁö ¿¬»êÀÚÀÌ´Ù.
& ¿¬»êÀÚ´Â º¯¼ö°¡ ÇÒ´çµÇ¾î ÀÖ´Â ¸Þ¸ð¸®ÀÇ ¹øÁö¸¦ ¾Ë¾Æ³¾ ¶§ »ç¿ëÇÏ¸ç ¹Ýµå½Ã º¯¼ö¸í ¾Õ¿¡ Ç¥½ÃÇÑ´Ù.
¡º ½Ç½À 8-01 ¡»¿¹Á¦ ÇÁ·Î±×·¥
/*------------------------------------------------------------------------------------------------
* c8-01.c : ¹øÁö ¿¬»êÀÚ »ç¿ë ¿¹(1)
*------------------------------------------------------------------------------------------------*/
main( )
{
int a;
printf("a = ? ");
scanf("%u", &a);
printf("º¯¼ö aÀÇ ¹øÁö = %d", &a);
printf("º¯¼ö aÀÇ ³»¿ë = %d", a);
}
¢Ñ½ÇÇà °á°ú
c>08-01
º¯¼ö aÀÇ ¹øÁö = 4256
º¯¼ö aÀÇ ³»¿ë = 123
À§ ÇÁ·Î±×·¥¿¡¼ »ç¿ëµÈ scanf( )ÇÔ¼ö
scanf("%u", &a);
´Â º¯¼ö a·Î »ç¿ëµÈ ¸Þ¸ð¸®ÀÇ ¹øÁö¿¡ Å°º¸µå·Î ÀÔ·ÂÇÑ µ¥ÀÌÅ͸¦ ±â¾ï½ÃÅ°¶ó´Â ÀǹÌÀÌ´Ù.
À§ ÇÁ·Î±×·¥ÀÇ ½ÇÇà °á°ú´Â Å°º¸µå·Î ÀÔ·ÂÇÑ Á¤¼öÇü µ¥ÀÌÅÍ 123ÀÌ º¯¼ö a·Î »ç¿ëµÈ ¸Þ¸ð¸®ÀÇ 4256¹øÁö¿¡ ±â¾ïµÇ¾úÀ½À» ¾Ë ¼ö ÀÖ´Ù. À§ ÇÁ·Î±×·¥À» ½ÇÇà½ÃÅ°¸é º¯¼ö aÀÇ ¹øÁö°ªÀº ÄÄÇ»ÅÍ¿¡ µû¶ó¼ ¶Ç´Â ½ÇÇà½Ãų ¶§¸¶´Ù ´Ù¸£°Ô ³ªÅ¸³¯ ¼ö ÀÖ´Ù. ±× ÀÌÀ¯´Â Á¦¥¶ÀåÀÇ ±â¾ï Àå¼ÒÀÇ Á¾·ù¸¦ ÇнÀÇÑ ÈÄ¿¡´Â ÃæºÐÈ÷ ÀÌÇØÇÒ ¼ö ÀÖÀ» °ÍÀÌ´Ù.
¡º ½Ç½À 8-02 ¡»¿¹Á¦ ÇÁ·Î±×·¥
/*------------------------------------------------------------------------------------------------
* c8-02.c : ¹øÁö ¿¬»êÀÚ »ç¿ë ¿¹(2)
*------------------------------------------------------------------------------------------------*/
main( )
{
int a=10, b=20, c;
c = a + b;
printf("º¯¼ö ¹øÁö ³»¿ë\n");
printf(" a %5d %4d\n", &a, a);
printf(" b %5d %4d\n", &b, b);
printf(" c %5d %4d\n", &c, c);
}
¢Ñ½ÇÇà °á°ú
c>08-02
º¯¼ö ¹øÁö ³»¿ë
a 4000 10
b 3998 20
c 3996 30
¡¶¿¬½À 8-01¡·´ÙÀ½ ÇÁ·Î±×·¥ÀÇ ½ÇÇà ¿©ºÎ¸¦ È®ÀÎÇ϶ó. ¸¸ÀÏ ¼öÇàµÇÁö ¾Ê´Â´Ù¸é ±× ÀÌÀ¯¸¦ ¹àÇô¶ó.
main( )
{
int a=10, b=20, c;
&c = a + b;
printf("&c = %d\n", &c);
}
2) * ¿¬»êÀÚ (°£Á¢ ÁöÁ¤ ¿¬»êÀÚ)
* ¿¬»êÀÚ´Â Æ÷ÀÎÅÍ°¡ ÁöÁ¤ÇÏ´Â ¸Þ¸ð¸® ¹øÁöÀÇ ³»¿ëÀ» ²ø¾î³¾¶§ »ç¿ëÇÏ´Â ¿¬»êÀÚÀÌ´Ù. &¿¬»êÀÚ¿Í *¿¬»êÀÚÀÇ ±â´ÉÀ» ¾Ë¾Æº¸±â À§ÇÏ¿© ´ÙÀ½ÀÇ ¿¹Á¦ ÇÁ·Î±×·¥À» »ìÆ캸±â·Î ÇÏÀÚ.
¡º ½Ç½À 8-03 ¡»¿¹Á¦ ÇÁ·Î±×·¥
/*------------------------------------------------------------------------------------------------
* c8-03.c : ¹øÁö ¿¬»êÀÚ¿Í Æ÷ÀÎÅÍ º¯¼ö
*------------------------------------------------------------------------------------------------*/
main( )
{
int n;
int *p; /* Çؼ³¨çÂü°í */
p = &n; /* Çؼ³¨èÂü°í */
*p = 123; /* Çؼ³¨éÂü°í */
printf("&n = %d\n, &n);
printf("p = %d\n, p);
printf("n = %d\n, n);
printf("*p = %d\n, *p);
}
¢Ñ½ÇÇà °á°ú
c>08-03
&n = 3950
p = 3950
n = 123
*p = 123
⼓ Çؼ³
¨çÆ÷ÀÎÅÍ º¯¼ö p¸¦ ¼±¾ðÇÑ´Ù.
¨èº¯¼ö nÀÇ ¹øÁö°ªÀ» Æ÷ÀÎÅÍ º¯¼ö p¿¡ ±â¾ï½ÃŲ´Ù.
¨éÁ¤¼öÇü ¼öÄ¡ 123À» Æ÷ÀÎÅÍ º¯¼ö p¿¡ ±â¾ïµÇ¾î ÀÖ´Â ¹øÁö¿¡ ±â¾ï½ÃŲ´Ù.
µû¶ó¼ 123Àº º¯¼ö n¿¡ ±â¾ïµÈ °ªÀÌ µÈ´Ù.
ÀÌÇظ¦ µ½±â À§ÇÏ¿© À§ ÇÁ·Î±×·¥À» Çà ´ÜÀ§·Î º¸´Ù ±¸Ã¼ÀûÀ¸·Î ¼³¸íÇϹ§ ´ÙÀ½°ú °°´Ù.
¨ç int n
intÇü º¯¼ö nÀ» ¼±¾ð : º¯¼ö nÀÇ ¿µ¿ªÀÌ ¸Þ¸ð¸®ÀÇ 3950¹øÁö¿Í 3951¹øÁö¶ó°í °¡Á¤ÇÏ¸é ´ÙÀ½°ú °°ÀÌ »ý°¢ ÇÒ ¼ö ÀÖ´Ù.
¹ø Áö |
¸Þ¸ð¸® |
|
3949 |
⼕ ⼕ |
|
3950 |
|
º¯¼ö nÀÇ ¿µ¿ª (2Byte) |
3951 |
|
|
3952 |
|
|
3953 |
⼕ ⼕ |
|
¡Ø nÀÇ ¿µ¿ªÀÌ 2¹ÙÀÌÆ®ÀÎ ÀÌÀ¯´Â intÇüÀÇ µ¥ÀÌÅÍ°¡ 2葡ÀÌÆ®·Î Ç¥ÇöµÇ±â ¶§¹®¿¡ ¸Þ¸ð¸®¿¡ ÀúÀåµÉ ¶§¿¡µµ 2¹ÙÀÌÆ®¸¦ Â÷ÁöÇϱ⠶§¹®ÀÌ´Ù.
¨è int *p;
Æ÷ÀÎÅÍ ¹ô¼ö p¸¦ ¼±¾ð : p´Â º¯¼ö nÀÇ ¹øÁö¸¦ ±â¾ï ½ÃÅ°·Á°í »ç¿ëÇÏ¿´´Ù.
¨é p = &n;
º¯¼ö nÀÇ ¹øÁö°ª(&n)À» Æ÷ÀÎÅÍ º¯¼ö p¿¡ ±â¾ï½ÃŲ´Ù.
|
¹ø Áö |
¸Þ¸ð¸® |
|
||||
Æ÷ÀÎÅÍ º¯¼ö p |
3949 |
⼕ ⼕ |
|
||||
3950 |
|
|
º¯¼ö nÀÇ ¿µ¿ª (2Byte) |
||||
|
3950 |
|
|||||
|
|||||||
|
|
|
3951 |
|
|||
|
3952 |
|
|
|
|||
|
3953 |
⼕ ⼕ |
|
¡Ø p = &n;¿¡ ÀÇÇÏ¿© º¯¼ö nÀÇ ¼±µÎ ¹øÁö°ªÀÎ 3950À» Æ÷ÀÎÅÍ º¯¼ö p¿¡ ÀúÀåµÈ´Ù.
¨ê *p = 123 ;
Æ÷ÀÎÅÍ º¯¼ö p¿¡ ±â¾ïµÇ¾î ÀÖ´Â ¹øÁöºÎÅÍ 2¹ÙÀÌÆ® Å©±âÀÇ ¸Þ¸ð¸®¿¡ Á¤¼öÇü »ó¼ö 123À» ±â¾ï½ÃŲ´Ù. Áï Æ÷ÀÎÅÍ º¯¼ö p°¡ °¡¸®Å°´Â ¹øÁöÀÎ 3950¹øÁöºÎÅÍ 3951¹øÁö±îÁöÀÇ 2¹ÙÀÌÆ® ¿µ¿ª¿¡ 123À» ±â¾ï½ÃŲ´Ù. ¸Þ¸ð¸®¿¡ 123ÀÌ ±â¾ïµÈ ¸ð¾çÀ» ±×¸²À¸·Î ³ªÅ¸³»¸é ´ÙÀ½°ú °°´Ù.
¹ø Áö |
¸Þ¸ð¸® |
|
|
3949 |
⼕ ⼕ |
|
|
3950 |
01111011 |
|
º¯¼ö nÀÇ ¿µ¿ª (2Byte) |
3951 |
00000000 |
||
3952 |
|
|
|
3953 |
⼕ ⼕ |
|
|
¡ØÀ§ÀÇ ±×¸²°ú °°ÀÌ µ¥ÀÌÅÍ°¡ ±â¾ïµÇ´Â ÀÌÀ¯´Â 10Áø¼ö 123À» 2Áø¼ö·Î Ç¥ÇöÇϸé 0000000001111011À̱⠶§¹®ÀÌ´Ù.
¨ë printf("&n = %d\n, &n);
º¯¼ö nÀÇ ½ÃÀÛ ¹øÁö°ª(3950)À» Ãâ·ÂÇÑ´Ù.
¨ì printf("p = %d\n, p);
Æ÷ÀÎÅÍ º¯¼ö pÀÇ °ª(3950)À» Ãâ·ÂÇÑ´Ù.
¨í printf("n = %d\n, n);
º¯¼ö nÀÇ °ªÀ» Ãâ·ÂÇÑ´Ù.
¨î printf("*p = %d\n, *p);
Æ÷ÀÎÅÍ º¯¼ö pÀÇ °ª(3950)¿¡ ÇØ´çÇÏ´Â ¸Þ¸ð¸® ¹øÁö¿¡ ±â¾ïµÇ¾î ÀÖ´Â °ª(123)À» Ãâ·ÂÇÑ ´Ù.
¡Ø ¿©±â¼ ¾Ë¾Æ µÑ »çÇ×Àº º¯¼ö nÀÇ °ª°ú *pÀÇ °ªÀÌ µ¿ÀÏÇÏ´Ù´Â »ç½ÇÀÌ´Ù.
¡º ½Ç½À 8-04 ¡»¿¹Á¦ ÇÁ·Î±×·¥
/*------------------------------------------------------------------------------------------------
* c8-04.c : ÀÏ¹Ý º¯¼ö¿Í Æ÷ÀÎÅÍ º¯¼ö¿ÍÀÇ °ü°è
*------------------------------------------------------------------------------------------------*/
/* intÇü º¯¼ö a, b¿¡ 10, 20, 30À» ±â¾ï½ÃŲ ÈÄ °¢ º¯¼öÀÇ ¹øÁö°ª°ú
* ±× ¹øÁö¿¡ ±â¾ïµÈ °ªÀ» Ãâ·ÂÇÏ´Â ÇÁ·Î±×·¥ */
main( )
{
int a, b, c;
int *pa, *pb, *pc;
a=10, b=20, c=30;
pa=&a, pb=&b, pc=&c;
printf("aÀÇ ¹øÁö = %d aÀÇ ³»¿ë = %d\n", &a, a);
printf("bÀÇ ¹øÁö = %d bÀÇ ³»¿ë = %d\n", &b, b);
printf("cÀÇ ¹øÁö = %d cÀÇ ³»¿ë = %d\n", &c, c);
printf("\n");
printf("pa = %d *pa = %d\n", pa, *pa);
printf("pb = %d *pb = %d\n", pb, *pb);
printf("pc = %d *pc = %d\n", pc, *pc);
}
¢Ñ½ÇÇà °á°ú
c>08-04
aÀÇ ¹øÁö = 4012 aÀÇ ³»¿ë = 10
bÀÇ ¹øÁö = 4010 bÀÇ ³»¿ë = 20
cÀÇ ¹øÁö = 4008 cÀÇ ³»¿ë = 30
pa = 4012 *pa = 10
pb = 4010 *pb = 20
pc = 4008 *pc = 30
¡º ½Ç½À 8-05 ¡»¿¹Á¦ ÇÁ·Î±×·¥
/*------------------------------------------------------------------------------------------------
* c8-05.c : Æ÷ÀÎÅÍ º¯¼ö¸¦ ÀÌ¿ëÇÑ µ¡¼À
*------------------------------------------------------------------------------------------------*/
main ( )
{
int a, b;
int *pa, *pb;
a=10;
pa=&a;
b=*pa + 10;
pb = &b;
printf("a = %d\n", a);
printf("b = %d\n", b);
printf("*pa = %d\n", *pa);
printf("*pb = %d\n", *pb);
}
¢Ñ½ÇÇà °á°ú
c>08-05
a = 10
b = 20
*pa = 10
*pb = 20
㽬 ÀÏ¹Ý º¯¼ö¿Í Æ÷ÀÎÅÍ º¯¼öÀÇ ºñ±³
|
ÀϹÝÀûÀÎ º¯¼ö |
Æ÷ÀÎÅÍ º¯¼ö |
¼±¾ð Çü½Ä |
int sum; sumÀ» intÇüÀ¸·Î ¼±¾ð |
int *sum; *sum(sum¹øÁö ³»¿ë)À» intÇüÀ¸·Î ¼±¾ð |
°ªÀÇ ´ëÀÔ |
sum = 123; º¯¼ö sum¿¡ 123À» ´ëÀÔ |
*sum = 123; sum¹øÁöÀÇ ³»¿ëÀ¸·Î 123À» ´ëÀÔ |
¹øÁö ÂüÁ¶ |
&sum º¯¼ö sumÀÌ ¼ö·ÏµÈ ¹øÁö |
sum; sumÀÚü°¡ ¹øÁö |
¹øÁö ¿¬»ê |
ºÒ°¡´É |
sum++; Æ÷ÀÎÅÍ(¹øÁö)¸¦ 1¸¸Å Áõ°¡ |
¹øÁö Á¶ÀÛ |
ºÒ°¡´É |
sum =123 Æ÷ÀÎÅÍ sum¿¡ 123À» ´ëÀÔ |
4. Æ÷ÀÎÅÍ¿Í ¹®ÀÚ¿
¹®ÀÚ¿Àº ¹è¿·Î 󸮵ȴٴ »ç½ÇÀ» ÀÌ¹Ì ¼³¸íÇÑ ¹Ù ÀÖ´Ù. ¹®ÀÚ¿À» ¹è¿·Î ó¸®ÇÒ °æ¿ì¿¡´Â ¹®ÀÚ¿ÀÇ ±æÀÌ°¡ ¾ó¸¶ÀÎÁö ÆÄÀÍÇÏ¿© ¹è¿ÀÇ Å©±â¸¦ ¹Ý¿µÇØ ÁÖ¾î¾ß Çϴµ¥ Æ÷ÀÎÅÍ º¯¼ö¸¦ ÀÌ¿ëÇÏ¿© ¹®ÀÚ¿À» ó¸®ÇÒ °æ¿ì¿¡´Â ¹®ÀÚ¿ÀÇ ±æÀ̸¦ °í·ÁÇÒ ÇÊ¿ä°¡ ¾ø´Ù. ´ÙÀ½ÀÇ ¿¹Á¦ ÇÁ·Î±×·¥À» ºÐ¼®ÇØ º¸¸é ±× ÀÌÀ¯¸¦ ½±°Ô ¾Ë ¼ö ÀÖÀ» °ÍÀÌ´Ù.
¡º ½Ç½À 8-06 ¡»¿¹Á¦ ÇÁ·Î±×·¥
/*------------------------------------------------------------------------------------------------
* c8-06.c : Æ÷ÀÎÅÍ º¯¼ö¸¦ ÀÌ¿ëÇÑ ¹®ÀÚ¿ ó¸®
*------------------------------------------------------------------------------------------------*/
main ( )
{
int i=0;
char *string;
string = "Seoul Korea"; /*Æ÷ÀÎÅÍ º¯¼ö string¿¡´Â "Seoul Korea"°¡ */
/*±â¾ïµÉ ù¹ø° ¹øÁö°ªÀÌ ±â¾ïµÈ´Ù. */
/*Áï ù¹®ÀÚ S°¡ ±â¾ïµÉ ¹øÁö°ªÀÌ Æ÷ÀÎÅÍ */
/*º¯¼ö string¿¡ ±â¾ïµÈ´Ù. */
while ( * (string+i) != '\0') {
printf("*(string+%2d) --> %c\n", i, *(string + i );
/* string+i ¹øÁöÀÇ ³»¿ë Ãâ·Â */
i++; /* 1¸¸ÅÀÇ Áõ°¡´Â Æ÷ÀÎÅÍÀÇ µ¥ÀÌÅÍÇüÀÇ Å©±â¸¸Å Áõ°¡ */
}
}
¢Ñ½ÇÇà °á°ú
c>08-06
*(string + 0) --> S
*(string + 1) --> e
*(string + 2) --> o
*(string + 3) --> u
*(string + 4) --> l
*(string + 5) -->
*(string + 6) --> K
*(string + 7) --> o
*(string + 8) --> r
*(string + 9) --> e
*(string +10) --> a
À§ ¿¹Á¦¿¡¼ ¹®ÀÚ¿ "Seoul Korea"°¡ ±â¾ïµÇ¾î ÀÖ´Â »óŸ¦ ±×¸²À¸·Î ³ªÅ¸³»¸é ´ÙÀ½°ú °°´Ù.
|
|
¸Þ¸ð¸® ⼕ ⼕ |
|
|
|
|
|
|
|
|
|
string |
|
S |
|
|
*string |
|
|
|
|||
|
|
e |
|
|
*(string + 1) |
|
|
|
|
||
|
|
o |
|
|
*(string + 2) |
|
|
|
|
||
|
|
u |
|
|
*(string + 3) |
|
|
|
|
||
|
|
l |
|
|
*(string + 4) |
|
|
|
|
||
|
|
|
|
|
*(string + 5) |
|
|
|
|
||
|
|
K |
|
|
*(string + 6) |
|
|
|
|
||
|
|
o |
|
|
*(string + 7) |
|
|
|
|
||
|
|
r |
|
|
*(string + 8) |
|
|
|
|
||
|
|
e |
|
|
*(string + 9) |
|
|
|
|
||
|
|
a |
|
|
*(string +10) |
|
|
|
|
||
|
|
\0 |
|
|
*(string +11) |
|
|
|
|
||
|
|
⼕ ⼕ |
|
|
|
|
|
|
|
|
¡¶¿¬½À 8-03¡·½Ç½À c8-06.cÀÇ ÇÁ·Î±×·¥À» º¯°æÇÏ¿© ½ÇÇà °á°úó·³ Seoul Korea¶ó´Â ¹®ÀÚ¿ À» °Å²Ù·Î Ãâ·ÂÇÏ´Â ÇÁ·Î±×·¥À» ¿Ï¼ºÇÏ¿©¶ó.
¢Ñ½ÇÇà °á°ú
aeroK luoeS
¡¶¿¬½À 8-04¡·¾Æ·¡ÀÇ main( )ÇÔ¼ö´Â ½ÇÇà °á°ú¿Í °°ÀÌ ¹®ÀÚ¿ÀÇ ±æÀ̸¦ ±¸Çϱâ À§ÇÑ °ÍÀÌ ´Ù. ¹®ÀÚ¿À» ±¸Çϱâ À§ÇÑ ÇÔ¼ö len( )À» ¿Ï¼ºÇÏ¿©¶ó.
¢Ñ½ÇÇà °á°ú
Hong Gil Dong = 13¹®ÀÚ
main ( )
{
static char *name = "Hong Gil Dong";
printf("%s = %d ¹®ÀÚ \n", name, len(name));
}
¡º ½Ç½À 8-07 ¡»¿¹Á¦ ÇÁ·Î±×·¥
/*------------------------------------------------------------------------------------------------
* c8-07.c : Æ÷ÀÎÅ͸¦ ÀÌ¿ëÇÑ ¹®ÀÚ¿ÀÇ º¹»ç
*------------------------------------------------------------------------------------------------*/
copy_string(form, to)
char *form, *to;
{
while ( *form != '\0' ) {
*to = *form;
form++;
to++;
}
*to = '\0';
}
main( )
{
static char string_1 [ ] = "C programming !!";
static char string_2 [20];
printf("string_1==> %s\n", string_1);
copy_string(string_1, string_2); /* Çؼ³¨çÂü°í */
printf("string_2==> %s\n", string_2);
}
¢Ñ½ÇÇà °á°ú
c>08-07
string_1==> C programming !!
string_2==> C programming !!
⼓ Çؼ³
¨çstring_1Àº string_1[0]ÀÇ ¹øÁö¸¦, string_2´Â string_2[0]ÀÇ ¹øÁö¸¦ ½ÇÀμöÀÇ °ªÀ¸·Î ÇÔ¼ö copy_string( )ÀÇ °¡Àμö·Î Àü´ÞÇÑ´Ù.
5. Æ÷ÀÎÅÍ¿Í ¹è¿
1)Æ÷ÀÎÅÍ¿Í 1Â÷¿ø ¹è¿
C¾ð¾î¿¡¼ ¹è¿ À̸§Àº ±× ¹è¿ÀÇ ¼±µÎ ¹øÁö¸¦ ÀǹÌÇÏ´Â ÀÏÁ¾ÀÇ Æ÷ÀÎÅÍ »ó¼öÀÌ´Ù. Áï CÄÄÆÄÀÏ·¯´Â ÷ÀÚ¾ø´Â ¹è¿¸íÀ» ¹è¿ÀÇ Æ÷ÀÎÅÍ·Î Ãë±ÞÇÑ´Ù. ÀÌ·± Àǹ̿¡¼ ¹è¿¸íÀ» »ó¼ö¶ó°íµµ ÇÑ´Ù.
¾Æ·¡ÀÇ µÎ¹®ÀåÀ» »ìÆì º¸±â·Î ÇÏÀÚ.
char *str ="Seoul Korea";
static char string[ ] = "Seoul Korea";
À§ µÎ¹®Àå¿¡¼ str°ú stringÀº ¸ðµÎ ¹®ÀÚ¿ "Seoul Korea"°¡ ±â¾ïµÇ¾î ÀÖ´Â ¸Þ¸ð¸®ÀÇ ½ÃÀÛ¹øÁö¸¦ °¡¸®Å²´Ù. Æ÷ÀÎÅÍ¿Í ¹è¿ÀÌ ¸Þ¸ð¸®ÀÇ ¹øÁö¸¦ ÀÌ¿ëÇÑ´Ù´Â °üÁ¡¿¡¼ º¼ ¶§ ¹è¿ º¯¼ö ´ë½Å¿¡ Æ÷ÀÎÅÍ º¯¼ö¸¦ »ç¿ëÇÒ ¼ö ÀÖ°í, ¹Ý´ë·Î Æ÷ÀÎÅÍ º¯¼ö ´ë½Å¿¡ ¹è¿ º¯¼ö¸¦ »ç¿ëÇÒ ¼ö ÀÖ´Ù.
¡º ½Ç½À 8-08 ¡»¿¹Á¦ ÇÁ·Î±×·¥
/*------------------------------------------------------------------------------------------------
* c8-08.c : ¹è¿°ú Æ÷ÀÎÅÍÀÇ °ü°è
*------------------------------------------------------------------------------------------------*/
main( )
{
char *pointer;
static char array[ ] = "Array";
int idx;
pointer = array; /* array´Â ¹è¿ ¿ø¼Ò array[0]ÀÇ ¹øÁö¸¦ ÀÇ¹Ì */
for ( idx=0; idx<5; idx++ ) {
printf("*(pointer + %d) --> %c ", idx, *(pointer + idx));
printf("pointer[%d] --> %c ", idx, pointer[idx]);
printf("array[%d] --> %c\n", idx, array[idx]);
}
}
¢Ñ½ÇÇà °á°ú
c>08-08
*(pointer+0) --> A pointer[0] --> A array[0] --> A
*(pointer+1) --> r pointer[1] --> r array[1] --> r
*(pointer+2) --> r pointer[2] --> r array[2] --> r
*(pointer+3) --> a pointer[3] --> a array[3] --> a
*(pointer+4) --> y pointer[4] --> y array[4] --> y
¾Æ·¡ÀÇ 3 ¹®ÀåÀº ½ÇÇà °á°ú¿¡¼ ¾Ë ¼ö ÀÖµíÀÌ Ç¥Çö ¹æ¹ý¸¸ Ʋ¸± »ÓÀÌÁö ±Ùº»ÀûÀ¸·Î µ¿ÀÏÇÑ ¹®ÀåÀÌ´Ù.
printf("*(pointer + %d) --> %c ", idx, *(pointer + idx));
printf("pointer[%d] --> %c ", idx, pointer[idx]);
printf("array[%d] --> %c\n", idx, array[idx]);
¾ö¹ÐÇÏ°Ô ¸»Çؼ ¾Æ·¡ÀÇ 3 Ç¥ÇöÀº ¿ÏÀüÈ÷ µ¿ÀÏÇÏ´Ù°í ¸»ÇÒ ¼ö ÀÖ´Ù.
*(pointer + idx)
pointer[idx]
array[idx]
µû¶ó¼ ¡º ½Ç½À 8-08 ¡»¿¡¼ ¹®ÀÚ¿ "Array"°¡ ±â¾ïµÇ¾î ÀÖ´Â »óŸ¦ ±×¸²À¸·Î ³ªÅ¸³»¸é ´ÙÀ½°ú °°´Ù.
|
¸Þ¸ð¸® ⼕ ⼕ |
|
|
|
|
||
pointer[0] |
S |
array[0] |
|
pointer[1] |
e |
array[1] |
|
pointer[2] |
o |
array[2] |
|
pointer[3] |
u |
array[3] |
|
pointer[4] |
l |
array[4] |
|
pointer[5] |
\0 |
array[5] |
|
|
|
|
|
|
|
|
*(pointer + 5) |
|
¡º ½Ç½À 8-09 ¡»¿¹Á¦ ÇÁ·Î±×·¥
/*------------------------------------------------------------------------------------------------
* c8-09.c : ¹è¿°ú Æ÷ÀÎÅÍÀÇ °ü°è È®ÀÎ
*------------------------------------------------------------------------------------------------*/
main( )
{
char *pointer = "Pointer";
static char array[ ] = "Array";
int idx;
for ( idx=0; idx<8; idx++ )
printf("pointer[%d] ---> %c\n", idx, pointer[idx]);
for ( idx=0; idx<6; idx++ )
printf("*(array+%d) ---> %c\n", idx, *(array+idx));
}
¢Ñ½ÇÇà °á°ú
c>08-09
pointer[0] ---> P
pointer[1] ---> o
pointer[2] ---> i
pointer[3] ---> n
pointer[4] ---> t
pointer[5] ---> e
pointer[6] ---> r
pointer[7] --->
*(array+0) --> A
*(array+1) --> r
*(array+2) --> r
*(array+3) --> a
*(array+4) --> y
*(array+5) -->
¹è¿À̶õ ´ÜÁö Æ÷ÀÎÅÍÀÇ º¯ÇüµÈ ÇüŶó°í ¸»ÇÒ ¼ö ÀÖ´Ù. Áï ¹è¿¸íÀº ¹è¿ÀÇ ¸Ç ù¹ø° ¿ø¼Ò¿¡ ´ëÇÑ Æ÷ÀÎÅͶó°í ¸»ÇÒ ¼ö ÀÖ´Ù. µû¶ó¼ À§ ÇÁ·Î±×·¥ÀÇ °æ¿ì ´ÙÀ½°ú °°Àº µî½ÄÀÌ ¼º¸³µÉ ¼ö ÀÖ´Ù.
pointer[0] == *(pointer+0) *(array+0) ==array[0]
pointer[1] == *(pointer+1) *(array+1) ==array[1]
pointer[2] == *(pointer+2) *(array+2) ==array[2]
pointer[3] == *(pointer+3) *(array+3) ==array[3]
pointer[4] == *(pointer+4) *(array+4) ==array[4]
pointer[5] == *(pointer+5) *(array+5) ==array[5]
pointer[6] == *(pointer+6)
pointer[7] == *(pointer+7)
¡º ½Ç½À 8-10 ¡»¿¹Á¦ ÇÁ·Î±×·¥
/*------------------------------------------------------------------------------------------------
* c8-10.c : ¹è¿ ¿ø¼ÒÀÇ ÂüÁ¶
*------------------------------------------------------------------------------------------------*/
main( )
{
int num[5]={
25, 87, 43, 56, 98
};
int i, *ptr;
ptr = num ;
for ( i=0; i<=4; i++ ) {
printf("*(ptr+%d) = %d", i, *(ptr+i));
printf(" ptr+%d = %d\n", i ptr+i);
}
}
¢Ñ½ÇÇà °á°ú
c>08-10
*(ptr+0) = 25 ptr+0 = 3452
*(ptr+1) = 87 ptr+1 = 3454
*(ptr+2) = 43 ptr+2 = 3456
*(ptr+3) = 56 ptr+3 = 3458
*(ptr+4) = 98 ptr+4 = 3460
㽬 Çؼ³
À§ ÇÁ·Î±×·¥Àº ¹è¿ÀÇ °¢ ¿ø¼Ò¸¦ ±¸ºÐÇϰųª ±× ¿ø¼ÒÀÇ °ªÀ» ÂüÁ¶Çϴµ¥ Æ÷ÀÎÅ͸¦ »ç¿ëÇÒ ¼ö ÀÖÀ½À» ³ªÅ¸³½ °ÍÀÌ´Ù. ¿©±â¼ ÀÌÇØÇÒ ¼ö ÀÖ´Â °ÍÀº Æ÷ÀÎÅÍ¿Í ¹è¿Àº º» ÁúÀûÀ¸·Î °°Àº °ÍÀ» Ç¥ÇöÀ» ´Ù¸£°Ô ÇÏ¿´À» »ÓÀ̶ó´Â »ç½ÇÀÌ´Ù.
|
¹øÁö |
¸Þ¸ð¸®
|
|
|
|
|
|
|
|||
prt+0 == |
3452 |
25 |
|
&num[0] |
|
|
3453 |
|
|
||
prt+1 == |
3454 |
87 |
|
&num[1] |
|
|
3455 |
|
|
||
prt+2 == |
3456 |
43 |
|
&num[2] |
|
|
3457 |
|
|
||
prt+3 == |
3458 |
56 |
|
&num[3] |
|
|
3459 |
|
|
||
prt+4 == |
3460 |
98 |
|
&num[4] |
|
|
3461 |
|
|
||
|
|
|
|
|
*(ptr+4) |
|
|
|
|
|
¡º ½Ç½À 8-11 ¡»¿¹Á¦ ÇÁ·Î±×·¥
/*------------------------------------------------------------------------------------------------
* c8-11.c : Æ÷ÀÎÅÍ¿Í ¹è¿(1)
*------------------------------------------------------------------------------------------------*/
main( )
{
static int n[5]={ 2, 4, 6, 8, 10
12, 14, 16, 18, 20 };
int sum=0;
int *pt;
for ( pt=n; pt<n+10; pt++ )
sum += *pt;
printf("sum = %d\n", sum);
}
¢Ñ½ÇÇà °á°ú
c>08-11
sum = 110
¡º ½Ç½À 8-12 ¡»¿¹Á¦ ÇÁ·Î±×·¥
/*------------------------------------------------------------------------------------------------
* c8-12.c : Æ÷ÀÎÅÍ¿Í ¹è¿(2)
*------------------------------------------------------------------------------------------------*/
int array_sum(array, n)
int array[ ];
int n;
{
int sum=0, *pointer;
for ( pointer=array; pointer<array+n; pointer++ )
sum += *pointer;
return(sum);
}
main( )
{
static int number[10] = { 2, 4, 6, 8, 10, 12, 14, 16, 18, 20};
printf("¹è¿ arrayÀÇ ÇÕ = %d\n", array_sum(number, 10));
}
¢Ñ½ÇÇà °á°ú
c>08-12
¹è¿ arrayÀÇ ÇÕ = 110
2) Æ÷ÀÎÅÍ¿Í 2Â÷¿ø ¹è¿
¡º ½Ç½À 08-13 ¡»¿¹Á¦ ÇÁ·Î±×·¥
/*------------------------------------------------------------------------------------------------
* c08-13.c : Æ÷ÀÎÅÍ¿Í 2Â÷¿ø ¹è¿
*------------------------------------------------------------------------------------------------*/
main( )
{
static int a[4][3]= { { 1, 2, 3},
{ 4, 5, 6},
{ 7, 8, 9},
{10, 11, 12} };
int k, *pt;
pt = a[3] /* Æ÷ÀÎÅÍ º¯¼ö pt ¿¡ a[3][0]ÀÇ ¹øÁö¸¦ ±â¾ï */
for ( k=0; k<3; k++ )
printf("a[3][%d] = %d\n", k *(pt+k));
}
¢Ñ½ÇÇà °á°ú
c>08-13
a[3][0] = 4
a[3][1] = 8
a[3][2] = 12
À§ ¿¡¿¡¼ »ç¿ëÇÑ 2Â÷¿ø ¹è¿ a[4][3]ÀÇ ¸Þ¸ð¸® »óŸ¦ ±×¸²À¸·Î ³ªÅ¸³»¸é ´ÙÀ½°ú °°´Ù.
|
|
|
¸Þ¸ð¸® ⼕ ⼕ |
|
|
|
|
|
|
||
pt=a[0] |
|
a[0][0] |
1 |
|
|
|
|
|
|||
|
|
a[0][1] |
2 |
|
a[0]ÀÇ ¿µ¿ª |
|
|
|
|||
|
|
a[0][2] |
3 |
|
|
|
|
|
|
||
pt=a[1] |
|
a[1][0] |
4 |
|
|
|
|
|
|||
|
|
a[1][1] |
5 |
|
a[1]ÀÇ ¿µ¿ª |
|
|
|
|||
|
|
a[1][2] |
6 |
|
|
|
|
|
|
||
pt=a[2] |
|
a[2][0] |
7 |
|
|
|
|
|
|||
|
|
a[2][1] |
8 |
|
a[2]ÀÇ ¿µ¿ª |
|
|
|
|||
|
|
a[2][2] |
9 |
|
|
|
|
|
|
||
pt=a[3] |
|
a[3][0] |
10 |
|
|
|
|
|
|||
|
|
a[3][1] |
11 |
|
a[3]ÀÇ ¿µ¿ª |
|
|
|
|||
|
|
a[3][2] |
12 |
|
|
|
|
|
|
||
|
|
|
⼕ ⼕ |
|
|
|
|
|
|
¡º ½Ç½À 08-14 ¡»¿¹Á¦ ÇÁ·Î±×·¥
/*------------------------------------------------------------------------------------------------
* c08-14.c : 2Â÷¿ø ¹è¿À» 1Â÷¿ø ¹è¿·Î Ãë±Þ
*------------------------------------------------------------------------------------------------*/
main( )
{
static int a[ ][3]= { { 1, 2, 3},
{ 2, 4, 6},
{ 3, 6, 9},
{ 4, 8, 12} };
int k, *pt;
pt = a[0] /* Æ÷ÀÎÅÍ º¯¼ö pt ¿¡ a[0][0]ÀÇ ¹øÁö¸¦ ±â¾ï */
for ( k=0; k<12; k++ ) {
printf("%3d", *(pt+k));
if ( (k+1) %3 ==0 )
printf("\n");
}
}
¢Ñ½ÇÇà °á°ú
c>08-14
1 2 3
2 4 6
3 6 9
4 8 12
¡¶¿¬½À 8-05¡·½Ç½À 8-14ÇÁ·Î±×·¥À» ¼öÁ¤ÇÏ¿© ¾Æ·¡ÀÇ ½ÇÇà °á°úó·³ Ãâ·ÂµÇµµ·Ï ¼öÁ¤ÇÏ¿© ¶ó.
¢Ñ½ÇÇà °á°ú
12 8 4
9 6 3
6 4 2
3 2 1
¡º ½Ç½À 08-15 ¡»¿¹Á¦ ÇÁ·Î±×·¥
/*------------------------------------------------------------------------------------------------
* c08-15.c : 2Â÷¿ø ¹è¿ÀÇ ÃʱâÈ
*------------------------------------------------------------------------------------------------*/
int_0 (temp, m, n, data)
int *temp, m, n, data;
{
int i;
for (i=0; i<m*n; i++ )
*temp++ = data;
}
main( )
{
int matrix[10][10], i, j;
int_0(matrix, 10, 10, 1);
for ( i=0; i<10; i++ ) {
for (j=0; j<10; j++ )
printf("%4d", matrix[i][j];
printf("\n");
}
}
¢Ñ½ÇÇà °á°ú
c>08-15
1 1 1 1 1 1 1 1 1 1
1 1 1 1 1 1 1 1 1 1
1 1 1 1 1 1 1 1 1 1
1 1 1 1 1 1 1 1 1 1
1 1 1 1 1 1 1 1 1 1
1 1 1 1 1 1 1 1 1 1
1 1 1 1 1 1 1 1 1 1
1 1 1 1 1 1 1 1 1 1
1 1 1 1 1 1 1 1 1 1
1 1 1 1 1 1 1 1 1 1
㽬 Âü°í
*temp++ = data; ´Â ´ÙÀ½ÀÇ µÎ¹®ÀåÀ» ÇϳªÀÇ ¹®ÀåÀ¸·Î Ç¥ÇöÇÑ °ÍÀÌ´Ù.
*temp=data;
temp++;
6. Æ÷ÀÎÅÍ ÇÔ¼ö
1) ÇÔ¼ö°£ÀÇ µ¥ÀÌÅÍ Àü´ÞÀ» À§ÇÑ Æ÷ÀÎÅÍÀÇ »ç¿ë
¡º ½Ç½À 08-16 ¡»¿¹Á¦ ÇÁ·Î±×·¥
/*------------------------------------------------------------------------------------------------
* c08-16.c : ÇÔ¼ö°£ÀÇ µ¥ÀÌÅÍ Àü´ÞÀ» À§ÇÑ Æ÷ÀÎÅÍÀÇ »ç¿ë
*------------------------------------------------------------------------------------------------*/
swap(px, py)
int *px, *py;
{
int temp;
temp = *px;
*px = *py;
*py = temp;
}
main( )
{
int a, b;
printf("a, b = ? ");
scanf("%d,%d, &a, &b);
swap (&a, &b);
printf("\n±³È¯ÈÄ a = %d, b = %d", a, b);
}
¢Ñ½ÇÇà °á°ú
c>08-16
a, b = 10,20
±³È¯ÈÄ a = 10, b = 10
㽬 Çؼ³
main( )ÇÔ¼ö¿¡¼ ÇÔ¼ö È£Ãâ¹®
swap(&a, &b);
´Â x¿Í yÀÇ °ª´ë½Å¿¡ x¿Í yÀÇ ¹øÁö¸¦ ÇÔ¼ö·Î Àü¼ÛÇÑ´Ù. µû¶ó¼ ÇÔ¼ö swap(px,py)¿¡ ¼ px, py´Â ¹øÁö¸¦ °ªÀ¸·Î °®°Ô µÇ¹Ç·Î Æ÷ÀÎÅÍ·Î ¼±¾ðµÇ¾î¾ß ÇÑ´Ù.
¡º ½Ç½À 08-17 ¡»¿¹Á¦ ÇÁ·Î±×·¥
/*------------------------------------------------------------------------------------------------
* c08-17.c : ÇÔ¼ö°£ÀÇ µ¥ÀÌÅÍ Àü´ÞÀ» À§ÇÑ Æ÷ÀÎÅÍÀÇ »ç¿ë
*------------------------------------------------------------------------------------------------*/
multi(x, y, z)
int x, y, z;
{
*z = x * y;
}
main( )
{
int a, b, c;
printf("a, b = ? ");
scanf("%d, %d", &a, &b);
multi(a, b, &c);
printf("%d * %d = %d\n", a, b, c);
}
¢Ñ½ÇÇà °á°ú
c>08-17
a, b = 10,20
10 * 20 = 200
¡¶¿¬½À 8-05¡·3°³ÀÇ ¼ö¸¦ Å°º¸µå·Î ÀÔ·ÂÇÏ¿© ´ë, Áß, ¼Ò ¼øÀ¸·Î Ãâ·ÂÇÏ´Â ÇÁ·Î±×·¥À» ÀÛ¼º Ç϶ó. ´Ü ¾Æ·¡ÀÇ ÇÔ¼ö swap( )À» »ç¿ëÇÏ¿©¶ó.
swap(px, py)
int *px, *py;
{
int temp;
temp = *px;
*px = *py;
*py = temp;
}
¡º ½Ç½À 08-18 ¡»¿¹Á¦ ÇÁ·Î±×·¥
/*------------------------------------------------------------------------------------------------
* c08-18.c : ÇÔ¼ö°£ÀÇ µ¥ÀÌÅÍ Àü´ÞÀ» À§ÇÑ Æ÷ÀÎÅÍÀÇ »ç¿ë
*------------------------------------------------------------------------------------------------*/
address(alpha)
char *alpha;
{
printf("%s\n", alpha);
}
main( )
{
static char str[ ]="ABCDEFGHIJKLMNOP";
int n;
for ( n=0; n<=15; n++ )
address(&str[n]);
}
¢Ñ½ÇÇà °á°ú
c>08-18
ABCDEFGHIJKLMNOP
BCDEFGHIJKLMNOP
CDEFGHIJKLMNOP
DEFGHIJKLMNOP
EFGHIJKLMNOP
FGHIJKLMNOP
GHIJKLMNOP
HIJKLMNOP
IJKLMNOP
JKLMNOP
KLMNOP
LMNOP
MNOP
NOP
OP
P
¡º ½Ç½À 08-19 ¡»¿¹Á¦ ÇÁ·Î±×·¥
/*------------------------------------------------------------------------------------------------
* c08-19.c : ÇÔ¼ö°£ÀÇ µ¥ÀÌÅÍ Àü´ÞÀ» À§ÇÑ Æ÷ÀÎÅÍÀÇ »ç¿ë
*------------------------------------------------------------------------------------------------*/
strlen (start)
char *start;
{
int i, len=0;
for ( i=0; ; i++)
if ( *(start+i) == '\0' ) {
len = i;
break;
}
else
len += 1;
return len;
}
main( )
{
char *string;
int length;
string = "I am Korean.";
printf("string = \"%s\"\n", string);
length = strlen(string);
printf("string length = %d\n", length);
}
¢Ñ½ÇÇà °á°ú
c>08-19
string = "I am Korean."
string length = 12
¡º ½Ç½À 08-20 ¡»¿¹Á¦ ÇÁ·Î±×·¥
/*------------------------------------------------------------------------------------------------
* c08-20.c : ÇÔ¼ö°£ÀÇ µ¥ÀÌÅÍ Àü´ÞÀ» À§ÇÑ Æ÷ÀÎÅÍÀÇ »ç¿ë
*------------------------------------------------------------------------------------------------*/
left(bstr, astr, an)
char *bstr, *astr;
int an;
{
int i;
for ( i=0; i<an ; i++ )
*(bstr+i) = *(astr+i);
*(bstr+an) = '\0';
}
main( )
{
static char a[ ] = "Programming";
char b[255];
int n;
printf("a[ ] = %s\n", a);
printf("n = ? ");
scanf("%d", &n);
left(b, a, n);
printf("b[ ] = %s\n", b);
}
¢Ñ½ÇÇà °á°ú
c>08-19
a[ ] = Programming
a = ? 7
b[ ] = program
¡¶¿¬½À 8-06¡·¾Æ·¡ÀÇ ½ÇÇà °á°ú¿Í °°ÀÌ Å°º¸µå·Î ¹®ÀÚ¿ a¿Í Á¤¼ö nÀ» ÀÔ·ÂÇÏ¸é ¹®ÀÚ¿ a ÀÇ ¿À¸¥ÂʺÎÅÍ a°³ÀÇ ¹®ÀÚµé·Î ±¸¼ºµÈ ¹®ÀÚ¿ b¸¦ Ãâ·ÂÇϵµ·Ï ÇÁ·Î±×·¥À» ÀÛ¼ºÇÏ¿©¶ó.
¢Ñ½ÇÇà °á°ú
a = ? Programming
n = ? 6
b = amming
¡¶¿¬½À 8-07¡·¾Æ·¡ÀÇ ½ÇÇà °á°ú¿Í °°ÀÌ Å°º¸µå·Î ¹®ÀÚ¿ a¿Í Á¤¼ö i ¹× j¸¦ ÀÔ·ÂÇÏ¸é ¹®ÀÚ ¿ aÀÇ i¹ø° ¹®ÀÚºÎÅÍ j°³ÀÇ ¹®ÀÚµé·Î ±¸¼ºµÈ ¹®ÀÚ¿ b¸¦ Ãâ·ÂÇÏ´Â ÇÁ·Î±× ·¥À» ÀÛ¼ºÇÏ¿©¶ó.
¢Ñ½ÇÇà °á°ú
a = ? Programming
i, j = ? 4,4
b = gram
¡¶¿¬½À 8-08¡·¾Æ·¡ÀÇ ½ÇÇà °á°ú¿Í °°ÀÌ Å°º¸µå·Î ÇϳªÀÇ ¹®ÀÚ x¿Í ÇϳªÀÇ ¼ý´Ù nÀ» ÀÔ·Â ÇÏ¸é ¹®ÀÚ x¸¦ n°³ ¿¬¼ÓÇÏ¿© Ãâ·ÂÇÏ´Â ÇÁ·Î±×·¥À» ÀÛ¼ºÇÏ¿©¶ó.
¢Ñ½ÇÇà °á°ú ¢Ñ½ÇÇà °á°ú
char = ? p char = ? #
int n = ? 10 int n = ? 6
string = pppppppppp string = ######
¥¸. ±¸ Á¶ ü
1. ±¸Á¶Ã¼ÀÇ °³³ä
±¸Á¶Ã¼(structureÇü µ¥ÀÌÅÍ ±¸Á¶)¶õ º¹¼ö°³ÀÇ µ¥ÀÌÅÍ·Î ±¸¼ºµÈ ÁýÇÕü¸¦ ÇϳªÀÇ ´ÜÀ§·Î ó¸®ÇÏ°íÀÚ ÇÒ ¶§ »ç¿ëµÇ´Â µ¥ÀÌÅÍ ±¸Á¶¸¦ ¸»ÇÑ´Ù.
ÀϹÝÀûÀ¸·Î ¿©·¯°³ÀÇ µ¥ÀÌÅÍ Ç׸ñÀ¸·Î ±¸¼ºµÈ ÁýÇÕü¸¦ ·¹ÄÚµå(record)¶ó°í Çϸç, ·¹ÄÚµå¿Í °°ÀÌ ¿©·¯ Ç׸ñÀ¸·Î ±¸¼ºµÈ µ¥ÀÌÅÍ ±¸Á¶¸¦ C¾ð¾î¿¡¼´Â ±¸Á¶Ã¼(structure)¶ó°í ÇÑ´Ù. ±×¸®°í ·¹Äڵ带 ±¸¼ºÇÏ´Â ÇϳªÇϳªÀÇ Ç׸ñÀ» ·¹ÄÚµå Çʵå(record field)¶ó°í Çϸç C¾ð¾î¿¡¼´Â ÀÌ°ÍÀ» ±¸Á¶Ã¼ ±¸¼º¿ø(structure members)À̶ó°í ÇÑ´Ù.
±¸Á¶Ã¼¸¦ »ç¿ëÇÔÀ¸·Î½á ¾òÀ» ¼ö ÀÖ´Â °¡Àå Å« ÀÌÁ¡Àº ¼·Î °ü·ÃÀÖ´Â µ¥ÀÌÅ͵éÀ» ÇϳªÀÇ ´ÜÀ§·Î Ãë±Þ ÇÒ ¼ö ÀÖ´Ù´Â Á¡ÀÌ´Ù. Áï ±¸Á¶Ã¼ ´ÜÀ§·Î µ¥ÀÌÅ͸¦ ÁÖ°í ¹ÞÀ» ¼ö ÀÖ´Ù´Â Á¡ÀÌ´Ù.
2. ±¸Á¶Ã¼ÀÇ Á¤ÀÇ¿Í ¼±¾ð
1) ±¸Á¶Ã¼ÀÇ ¿¹
¾Æ·¡ÀÇ ±×¸²Àº ¿©·¯ Ç׸ñÀ¸·Î ±¸¼ºµÈ ±¸Á¶Ã¼ÀÇ ÇÑ ¿¹¸¦ ³ªÅ¸³½ °ÍÀÌ´Ù.
¼º Àû Ä« µå |
|||
¹øÈ£ |
¼º ¸í |
Á¡¼ö |
µîÀ§ |
1201 |
È«±æµ¿ |
90 |
8 |
2) ±¸Á¶Ã¼ÀÇ Á¤ÀÇ
±¸Á¶Ã¼¸¦ Á¤ÀÇÇÒ ¶§¿¡´Â ¿¹¾à¾îÀÎ struct¸¦ »ç¿ëÇÏ¿© ´ÙÀ½°ú °°Àº Çü½ÄÀ¸·Î Á¤ÀÇÇÑ´Ù.
struct ±¸Á¶Ã¼ Åà { ±¸¼º¿ø1 ¼±¾ð; ±¸¼º¿ø2 ¼±¾ð;
±¸¼º¿øn ¼±¾ð; }; |
±¸Á¶Ã¼ ÅÃ(structure tag)À̶õ ±¸Á¶Ã¼¸¦ ´ëÇ¥ÇÏ´Â À̸§À¸·Î ·¹ÄÚµå¸íÀ̶ó°í »ý°¢ÇÒ ¼ö ÀÖ´Ù. À§¿Í °°ÀÌ ±¸Á¶Ã¼°¡ ¼±¾ðµÈ ÈÄ¿¡ ±¸Á¶Ã¼¸¦ »ç¿ëÇÒ ¶§¿¡´Â ±¸Á¶Ã¼ Åÿ¡ ÀÇÇÏ¿© ÂüÁ¶µÈ´Ù.
3) ±¸Á¶Ã¼ Á¤ÀÇÀÇ ¿¹
À§¿¡¼ ±¸Á¶Ã¼ÀÇ ¿¹·Î ³ªÅ¸³½ ¼ºÀûÄ«µå¸¦ ±¸Á¶Ã¼·Î Á¤ÀÇÇÏ¸é ´ÙÀ½°ú °°´Ù.
struct sungjuk {
int bunho;
char irum[7];
int jumsu;
int sunwi; };
À§¿Í °°ÀÌ ±¸Á¶Ã¼¸¦ Á¤ÀÇÇϸé struct sungjukÀ̶ó´Â ±¸Á¶Ã¼Çü µ¥ÀÌÅ͸¦ »ç¿ë ÇÒ ¼ö ÀÖ´Â Áغñ ÀÛ¾÷ÀÌ µÈ °ÍÀ̶ó°í ÇÒ ¼ö ÀÖ´Ù.
| ±¸Á¶Ã¼ÀÇ Á¤ÀǸ¦ ÇÔ¼öÀÇ ¿ÜºÎ¿¡¼ ÇÏ°ÔµÇ¸é °íÁ¶Ã¼ Á¤ÀÇ ÀÌÈÄ¿¡ ±â¼úµÈ ¾î¶² ÇÔ¼ö¿¡¼ µµ »ç¿ëÀÌ °¡´ÉÇϳª ÇÔ¼ö ³»ºÎ¿¡¼ Á¤ÀÇÇÏ¸é ±× ÇÔ¼ö ³»¿¡¼¸¸ »ç¿ëÇÒ ¼ö ÀÖ´Ù.
| ±¸Á¶Ã¼¸¦ Á¤ÀÇÇÒ 飁 auto, staticµîÀÇ ±â¾ï Àå¼Ò Á¾·ù´Â ±â¼úÇÏÁö ¾Ê´Â´Ù.
4) ±¸Á¶Ã¼ º¯¼öÀÇ ¼±¾ð
±¸Á¶Ã¼¸¦ Á¤ÀÇÇÏ°í ³ ÈÄ ±¸Á¶Ã¼¸¦ ½ÇÁ¦·Î »ç¿ëÇÏ·Á¸é ±¸Á¶Ã¼¸¦ ¼±¾ðÇØ ÁÖ¾î¾ß Çϴµ¥ ±× Çü½ÄÀº ´ÙÀ½°ú °°´Ù.
struct ±¸Á¶Ã¼ Åà º¯¼ö1, º¯¼ö2, |
À§¿Í °°Àº Çü½ÄÀ¸·Î ±¸Á¶Ã¼¸¦ ¼±¾ðÇÏ¸é º¯¼ö1 º¯¼ö2, µîÀº ±¸Á¶Ã¼ Åðú °°Àº µ¥ÀÌÅÍ ±¸Á¶¸¦ °®´Â º¯¼ö·Î ¼±¾ðµÈ´Ù.
struct sungjuk { /*±¸Á¶Ã¼ Á¤ÀÇ */ int bunho; char irum[7]; int jumsu; int sunwi; }; struct sungjuk list_1, list_2; /*±¸Á¶Ã¼ ¼±¾ð */ |
À§¿Í °°ÀÌ ±¸Á¶Ã¼°¡ ¼±¾ðµÇ¸é list_1°ú list_2´Â sungjuk°ú °°Àº ±¸Á¶¸¦ °®´Â ±¸Á¶Ã¼ º¯¼ö·Î »ç¿ëÇÒ ¼ö ÀÖ´Ù.
| ±¸Á¶Ã¼ ¼±¾ðÀÇ ´Ù¸¥ ¿¹
±¸Á¶Ã¼ º¯¼ö´Â ´ÙÀ½°ú °°ÀÌ ±¸Á¶Ã¼ Á¤ÀÇ¿Í ¼±¾ðÀ» °áÇÕÇÏ¿© ÇÑ ´Ü°è·Î Ç¥Çö ÇÒ ¼ö µµ ÀÖ´Ù.
struct sungjuk { /*±¸Á¶Ã¼ Á¤ÀÇ */ int bunho; char irum[7]; int jumsu; int sunwi; } list_1, list_2; /*±¸Á¶Ã¼ ¼±¾ð */ |
3. ±¸Á¶Ã¼ º¯¼öÀÇ ÂüÁ¶
¡º ½Ç½À 09-01 ¡»±¸Á¶Ã¼¸¦ »ç¿ëÇÏ´Â °£´ÜÇÑ ¿¹Á¦ ÇÁ·Î±×·¥
/*------------------------------------------------------------------------------------------------
* c09-01.c : ±¸Á¶Ã¼ º¯¼öÀÇ È°¿ë
*------------------------------------------------------------------------------------------------*/
main( )
{
struct sungjuk {
int bunho;
char *irum;
int jumsu;
int sunwi;
};
struct sungjuk list;
list.bunho = 1201;
list.irum = "È«±æµ¿";
list.jumsu = 90;
list.sunwi = 8;
printf("¹øÈ£ ¼º ¸í Á¡¼ö ¼øÀ§\n");
printf("%4d%8s,%6d%6d", list.bunho, list.irum, list.jumsu, list.sunwi);
}
¢Ñ½ÇÇà °á°ú
c>09-01
¹øÈ£ ¼º ¸í Á¡¼ö ¼øÀ§
1201 È«±æµ¿ 90 8
ÇÁ·Î±×·¥ <c09-01.c>¿¡¼¿Í °°ÀÌ ±¸Á¶Ã¼ÀÇ ±¸¼º¿øÀ» ÂüÁ¶ÇÏ·Á¸é ÇǾµå(.)¸¦ »ç¿ëÇÏ¿©¾ß ÇÑ´Ù. ¿¹¸¦ µé¸é
list.bunho =1201;
¿¡¼ list.bunho´Â ±¸Á¶Ã¼ listÀÇ ±¸¼º¿øÀÎ bunho¸¦ ÀǹÌÇÑ´Ù. Áï .bunho´Â ±¸Á¶Ã¼ listÀÇ °¢ ±¸¼º¿øÀ» ÆǺ°Çϱâ À§ÇÑ Ã·ÀÚÀÇ ¿ªÇÒÀ» ¼öÇàÇÑ´Ù.
±×¸®°í list.bunho¿Í °°Àº ±¸Á¶Ã¼ÀÇ ±¸¼º¿øÀº µ¶¸³µÈ ÇϳªÀÇ º¯¼ö·Î »ç¿ëÇÒ ¼ö ÀÖ´Ù.
¡º ½Ç½À 09-02 ¡»¿¹Á¦ ÇÁ·Î±×·¥
/*------------------------------------------------------------------------------------------------
* c09-02.c : ±¸Á¶Ã¼ º¯¼öÀÇ È°¿ë
*------------------------------------------------------------------------------------------------*/
main( )
{
struct book {
char title[20];
char author[20];
char press[20];
int value;
} list;
printf("Ã¥ ¸í = ? ");
scanf("%s", list.title); /* ¹è¿Àº ÀÏÁ¾ÀÇ Æ÷ÀÎÅÍÀ̹ǷΠ&±âÈ£¸¦ »ç¿ë¾ÈÇÔ */
printf("Àú ÀÚ = ? ");
scanf("%s", list.author);
printf("ÃâÆÇ»ç = ? ");
scanf("%s", list.press);
printf("Á¤ °¡ = ? ");
scanf("%d", &list.value);
printf("\n=============================\n");
printf(" Ã¥ ¸í : %s\n:, list.title);
printf(" ÀÚ ÀÚ : %s\n:, list.author);
printf(" Ãâ ÆÇ »ç : %s\n:, list.press);
printf(" Á¤ °¡ : %d¿ø\n:, &list.value);
printf("\n=============================\n");
}
¢Ñ½ÇÇà °á°ú
c>09-02
Ã¥ ¸í = ? MicroSoft-C-Basic
Àú ÀÚ = ? Naba.barkakati
ÃâÆÇ»ç = ? Sams
Á¤ °¡ = ? 18000
==============================
Ã¥ ¸í : MicroSoft-C-Basic
Àú ÀÚ : Naba.barkakati
Ãâ ÆÇ »ç : Sams:
Á¤ °¡ : 18000¿ø
==============================
4. ±¸Á¶Ã¼ÀÇ ÃʱâÈ
1) ±¸Á¶Ã¼ º¯¼öÀÇ ÃʱâÈ
±¸Á¶Ã¼ º¯¼ö¸¦ ÃʱâÈ ÇÏ´Â °ÍÀº ÀÏÂ÷¿ø ¹è¿À» ÃʱâÈ ÇÏ´Â °Í°ú ¸Å¿ì À¯»çÇÏ´Ù. ´ÜÁö ´Ù¸¥ Á¡ÀÌ ÀÖ´Ù¸é °¢ ÃʱâÄ¡°¡ ´ëÀÀÇÏ´Â ±¸Á¶Ã¼ ±¸¼º¿ø(member)ÀÇ µ¥ÀÌÅÍÇü°ú ÀÏÄ¡ÇØ¾ß ÇÑ´Ù´Â °Í°ú ±¸Á¶Ã¼ ±¸¼º¿øÀÌ ¹è¿ÀÏ °æ¿ì ¹è¿ Å©±â¸¦ »ý·«ÇÒ ¼ö ¾ø´Ù´Â Á¡ÀÌ´Ù.
±¸Á¶Ã¼ º¯¼ö¸¦ ÃʱâÈ ÇÏ·Á¸é ±¸Á¶Ã¼ º¯¼ö°¡ static º¯¼öÀ̰ųª externº¯¼ö À̾î¾ß ÇÑ´Ù. ±¸Á¶Ã¼ º¯¼ö°¡ static º¯¼öÀÎÁö extern º¯¼öÀÎÁö´Â ±¸Á¶Ã¼ º¯¼ö°¡ Á¤ÀÇµÈ À§Ä¡¿¡ ÀÇÇؼ °áÁ¤µÇ´Â °ÍÀÌ ¾Æ´Ï¶ó ±¸Á¶Ã¼ º¯¼ö°¡ ¼±¾ðµÈ À§Ä¡¿¡ µû¶ó¼ ±¸º°µÈ´Ù.
¡º ½Ç½À 09-03 ¡»¿¹Á¦ ÇÁ·Î±×·¥
/*------------------------------------------------------------------------------------------------
* c09-03.c : ±¸Á¶Ã¼ º¯¼öÀÇ È°¿ë
*------------------------------------------------------------------------------------------------*/
static date {
int year;
int month;
int day;
};
main( )
{
static struct date today = { 1991, 9, 31};
printf("¿À´ÃÀº %d³â %d¿ù %dÀÏ ÀÔ´Ï´Ù.\n",
today.year, today.month, today.day);
}
¢Ñ½ÇÇà °á°ú
c>09-03
¿À´ÃÀº 1991³â 9¿ù 31ÀÏ ÀÔ´Ï´Ù.
¡º ½Ç½À 09-04 ¡»¿¹Á¦ ÇÁ·Î±×·¥
/*------------------------------------------------------------------------------------------------
* c09-04.c : ±¸Á¶Ã¼ º¯¼öÀÇ ÃʱâÈ
*------------------------------------------------------------------------------------------------*/
struct book {
char title[30];
char author[20];
char press[20];
int value;
} ;
main( )
{
static struct book dos = {
"Dos Power user's guide", /* dos.title */
"KRIS SAMSA", /* dos.author */
"McGraw-Hill", /* dos.press */
8000 /* dos.value */
}, /* °¢ º¯¼ö´Â ÄÞ¸¶(,)·Î ±¸ºÐÇÑ´Ù. */
msc = {
"MicroSoft-C-Basic", /* msc.title */
"Naba.barkakati", /* msc.author */
"Sams", /* msc.press */
18000 /* msc.value */
};
printf("\n================================\n");
printf(" Ã¥ ¸í : %s\n:, dos.title);
printf(" ÀÚ ÀÚ : %s\n:, dos.author);
printf(" Ãâ ÆÇ »ç : %s\n:, dos.press);
printf(" Á¤ °¡ : %d\\\n:, &dos.value);
printf("\n=============================\n");
printf("\n================================\n");
printf(" Ã¥ ¸í : %s\n:, msc.title);
printf(" ÀÚ ÀÚ : %s\n:, msc.author);
printf(" Ãâ ÆÇ »ç : %s\n:, msc.press);
printf(" Á¤ °¡ : %d\\\n:, &msc.value);
printf("\n=============================\n");
}
¡º ½Ç½À 09-05 ¡»¿¹Á¦ ÇÁ·Î±×·¥
/*------------------------------------------------------------------------------------------------
* c09-05.c : ±¸Á¶Ã¼ ¹è¿ÀÇ È°¿ë
*------------------------------------------------------------------------------------------------*/
struct sungjuk {
int number;
int name[20];
char sex;
int age;
int score;
int rank;
};
main( )
{
int i;
static struct sungjuk list[ ] = {
{ 1101, "È«±æµ¿", "³²", 25, 88, 13},
{ 1204, "±è³²¼ø", "¿©", 21, 87, 14},
{ 1306, "±è¾ËÁö", "³²", 25, 90, 8},
{ 1412, "À庸°í", "³²", 28, 89, 10},
};
printf("\n----------------------------------------------------");
printf("\n ¹øÈ£ ¼º ¸í ¼ºº° ³ªÀÌ Á¡¼ö ¼øÀ§ ");
printf("\n----------------------------------------------------");
for ( i=0; i<=3; i++ )
printf("\n%4d %6s %2s %2d %2d %2d",
list[i].number, list[i].name, list[i].sex,
list[i].age, list[i].score, list[i].rank);
printf("\n----------------------------------------------------");
}
¢Ñ½ÇÇà °á°ú
c>09-05
-----------------------------------------------------
¹øÈ£ ¼º ¸í ¼ºº° ³ªÀÌ Á¡¼ö ¼øÀ§
-----------------------------------------------------
1101 È«±æµ¿ ³² 25 88 13
1204 ±è³²¼ø ¿© 21 87 14
1306 ±è¾ËÁö ³² 25 90 8
1412 À庸°í ³² 28 89 10
-----------------------------------------------------
¡º ½Ç½À 09-06 ¡»¿¹Á¦ ÇÁ·Î±×·¥
/*------------------------------------------------------------------------------------------------
* c09-06.c : ±¸Á¶Ã¼ Æ÷ÀÎÅÍ º¯¼öÀÇ È°¿ë
*------------------------------------------------------------------------------------------------*/
struct sungjuk {
int number;
int *name;
char *sex;
int age;
int score;
int rank;
};
main( )
{
int i;
static struct sungjuk *pointer;
static struct sungjuk list[ ] = {
{ 1101, "È«±æµ¿", "³²", 25, 88, 13},
{ 1204, "±è³²¼ø", "¿©", 21, 87, 14},
{ 1306, "±è¾ËÁö", "³²", 25, 90, 8},
{ 1412, "À庸°í", "³²", 28, 89, 10},
};
printf("\n----------------------------------------------------");
printf("\n ¹øÈ£ ¼º ¸í ¼ºº° ³ªÀÌ Á¡¼ö ¼øÀ§ ");
printf("\n----------------------------------------------------");
pointer = list;
for ( i=0; i<=3; i++, pointer++ )
printf("\n%4d %6s %2s %2d %2d %2d",
pointer-->number, pointer-->name, pointer-->sex,
pointer-->age, pointer-->score, pointer-->rank);
printf("\n----------------------------------------------------");
}
¢Ñ½ÇÇà °á°ú
c>09-06
-----------------------------------------------------
¹øÈ£ ¼º ¸í ¼ºº° ³ªÀÌ Á¡¼ö ¼øÀ§
-----------------------------------------------------
1101 È«±æµ¿ ³² 25 88 13
1204 ±è³²¼ø ¿© 21 87 14
1306 ±è¾ËÁö ³² 25 90 8
1412 À庸°í ³² 28 89 10
-----------------------------------------------------
5. °ø ¿ë ü (Union)
°ø¿ëü´Â ÇϳªÀÇ µ¥ÀÌÅ͸¦ ¿©·¯ °³ÀÇ º¯¼ö°¡ °ø¿ëÇÒ ¼ö ÀÖ°Ô ÇØÁÖ´Â µ¥ÀÌÅÍ ÇüÀÌ´Ù. °ø¿ëüÀÇ Á¤ÀÇ ¹æ¹ý°ú ¼±¾ð ¹æ¹ýÀº ±¸Á¶Ã¼¿Í µ¿ÀÏÇÏ´Ù. ´Ü, ±¸Á¶Ã¼´Â ¸ðµç ÀÚ·á°¡ º°°³ÀÇ ±â¾ïÀå¼Ò¸¦ ¹èÁ¤¹ÞÁö¸¸ °ø¿ëüÀÇ °æ¿ì¿¡´Â °¡Àå ±ä °ÍÀÇ ÀÚ·á Çü¿¡ ¸ÂÃß¾î ¸Þ¸ð¸®¸¦ ÇÒ´ç¹Þ´Â´Ù. °ø¿ëüÀÇ ¸â¹ö·Î´Â ÁÖ·Î ±¸Á¶Ã¼¸¦ »ç¿ëÇϸç, °ø¿ëüÀÇ Á¤ÀÇ Çü½ÄÀº ´ÙÀ½°ú °°´Ù.
union °ø¿ëü Åà { ¸â¹ö1; ¸â¹ö2; ...; };
<¿¹Á¦4> °ø¿ëüÀÇ »ç¿ë º¸±â
<¸®½ºÆ®4> | <¸®½ºÆ®4>ÀÇ °ø¿ëü´Â ¾Æ·¡¿Í °°
union abc { | Àº ÇüÅ·Π±â¾ïÀå¼Ò¸¦ ¹èÁ¤ÇÑ´Ù
char a; |
int b; | | |
long c; | +------+---- +----+
}; | | 78 +-- a | |
main() | +------+ | b |
{ | | 56 | | |
union abc val; | +------+-----+ | c
val.c = (long)0x12345678; | | 34 | |
printf("c = %08lx\n", val.c); | +------+ |
printf("b = %08x\n", val.b); | | 12 | |
printf("a = %08x\n",val.a); | +------+ ---+
} | | |
À§ÀÇ ±×¸²°ú °°ÀÌ »óÀ§ ¹ÙÀÌÆ®¿Í ÇÏÀ§ ¹ÙÀÌÆ®°¡ ¹Ù²î¾î ÀúÀåµÇ´Â °ÍÀ» ¿ª¿öµå Çü½ÄÀ̶ó°í Çϴµ¥ 80x°èÀÇ CPU¿¡¼´Â ¿ª¿öµå Çü½ÄÀ¸·Î ÀÚ·á°¡ ÀúÀåµÈ´Ù. <¸®½ºÆ®4>³»ÀÇ ÇÁ·Î±×·¥¿¡¼´Â °¢°¢ÀÇ ¹ÙÀÌÆ®¸¦ µ¶¸³ÀûÀ¸·Î ¾ï¼¼½ºÇÒ ¼ö ¾øÁö¸¸ °ø¿ëüÀÇ ¸â¹ö·Î ±¸Á¶Ã¼¸¦ »ç¿ëÇÏ¸é °¢°¢ÀÇ ¹ÙÀÌÆ®¸¦ °³º°ÀûÀ¸·Î ¾ï¼¼½ºÇÒ ¼ö ÀÖ´Ù.
<¿¹Á¦5> °ø¿ëüÀÇ »ç¿ë º¸±â (II)
<¸®½ºÆ®5>
struct str { | <¸®½ºÆ®5>ÀÇ °ø¿ëü´Â ¾Æ·¡¿Í
char c1; | °°Àº ÇüÅ·Π±â¾ïÀå¼Ò¸¦ ¹èÁ¤
char c2; | ÇÑ´Ù.
char c3; |
char c4; | | |
}; | +------+---+ -----+ --+
union abc { | | 78 | c1| - a | |
struct str chr; | +------+ | |b |
char a; | | 56 | c2| | |
int b; | +------+ | -----+ |c
long c; | | 34 | c3|±¸Á¶Ã¼ |
}; | +------+ | chr |
main() | | 12 | c4| |
{ | +------+ --+ ---------+
union abc val; | | |
val.c = (long)0x12345678; |
printf("a = %8lx\n", val.a); |
printf("b = %8x\n", val.b); | <¸®½ºÆ®5>¿¡¼ c3¸¦ °¡¸®Å³ °æ
printf("c = %8x\n", val.c); |¿ì¿¡´Â val.chr.c3·Î ±â¼úÇؾß
printf("c1 = %8x\n",val.chr.c1); |ÇÑ´Ù. ÀÌ°ÍÀº '°ø¿ëü val¿¡ ¼Ó
printf("c2 = %8x\n",val.chr.c2); |ÇØÀÖ´Â ±¸Á¶Ã¼ chrÀÇ ¸â¹ö c3'¶ó
printf("c3 = %8x\n",val.chr.c3); |´Â ÀǹÌÀÌ´Ù. ±¸Á¶Ã¼ÀÇ ¿ä¼Ò¸¦
printf("c4 = %8x\n",val.chr.c4); |°ø¿ëü·Î ¼±¾ðÇØ µÎ¸é ÀڷḦ Àü
} |üÀûÀ¸·Î ÅëÇÕÇÏ¿© ´Ù·ê¼ö ÀÖ°í
°³º°ÀûÀ¸·Îµµ ´Ù·ê ¼ö ÀÖ´Ù.
±¸Á¶Ã¼³ª °ø¿ëü¸¦ ÇÔ¼öÀÇ Àμö·Î »ç¿ëÇÒ ¶§´Â ±¸Á¶Ã¼³ª °ø¿ëüÀÇ ÁÖ¼Ò¸¦°Ç³»ÁÖ¾î¾ß Çϸç, ¹Þ´Â Ãø¿¡¼´Â ±×°ÍÀ» Æ÷ÀÎÅÍ·Î ¹Þ¾Æ¿Â´Ù. ¿¹¸¦ µé¾î test()¶ó´Â ÇÔ¼ö¿¡ <¸®½ºÆ®5>¿¡¼ Á¤ÀÇÇÑ °ø¿ëü valÀ» Àü´ÞÇÏ·Á¸é ´ÙÀ½°ú °°ÀÌ ÇÏ¸é µÈ´Ù.
È£ÃâÃø : test(&val);
...
ÇÇÈ£ÃâÃø : void test(union val *abc)
{ ....
test( )ÇÔ¼ö¿¡¼´Â °ø¿ëü valÀ» abc¶ó´Â À̸§À¸·Î »ç¿ëÇÑ´Ù. ±¸Á¶Ã¼¿Í °ø¿ëüÀÇ È°¿ëÀº Ãʺ¸ÀÚ¿¡°Ô´Â ´Ù¼Ò ¾î·Á¿î °³³äÀ̹ǷΠº¸´Ù ±íÀº ³»¿ëÀº »ý·«ÇÏ°Ú´Ù.
±¸Á¶Ã¼³ª °ø¿ëüÀÇ °³³äÀ» ¿Ö ÀÍÇô¾ß ÇÏ´ÂÁö Àǹ®À» °¡Áö´Â »ç¶÷ÀÌ ÀÖÀ»Áö ¸ð¸£³ª, C·Î ±×·¡ÇÈ Ã³¸®¸¦ Çϱâ À§Çؼ ±×·¡ÇÈ °ü·Ã ³»Àå ÇÔ¼öµéÀ» ¾´´Ù°Å³ª, ¾î¼Àºí¸® ·çƾÀ» Ãß°¡ÇÏ·Á´Â °æ¿ì¿¡´Â ±¸Á¶Ã¼¿Í °ø¿ëüÀÇ °³³äÀ» ¾Ë°í ÀÖ´Â °ÍÀÌ ÈξÀ À¯¸®ÇÏ´Ù. ¿Ö³ÄÇÏ¸é ±×·¡ÇÈ Ã³¸®¸¦ À§ÇÑ ÇÔ¼öµéÀº ´ëºÎºÐ ±¸Á¶Ã¼ Çüä·Î Á¦°øµÇ¸ç, ¾î¼Àºí¸®¿Í °ü°èµÇ´Â Ç׸ñµéÀº ¿©Áö¾øÀÌ °ø¿ëü·Î Áö¿øµÇ±â ¶§¹®ÀÌ´Ù. ¸¸¾à ±¸Á¶Ã¼¿Í °ø¿ëü¸¦ ÀüÇô ¸ð¸¥´Ù¸é ÄÄÆÄÀÏ·¯¿¡¼ Áö¿øÇÏ´Â °¢Á¾ ¶óÀ̺귯¸® ·çƾÀ» Á¦´ë·Î È°¿ëÇÒ ¼ö°¡ ¾ø´Ù.
<¿¹Á¦6> ¾î¼Àºí¸® ·çƾÀÇ ÀÌ¿ë(°ø¿ëüÀÇ »ç¿ë º¸±â(III))
¿©·¯ºÐµéÀÇ ´ëºÎºÐÀº ¾î¼Àºí¸®¸¦ ¸ð¸¦ °ÍÀ̹ǷΠÀÌ Ç׸ñÀ» °¡º±°Ô Àаí³Ñ¾î°¡ÀÚ.
¾î¼Àºí¸®¿¡¼´Â ȸé¼Ò°Å¸¦ BIOSÀÎÅÍ·´Æ® 10HÀÇ 6¹øÀ̳ª 7¹øÀ» ÀÌ¿ëÇÏ¿©Ã³¸®Çϴµ¥, ÀÌ ¶§ÀÇ ·¹Áö½ºÅÍ´Â ´ÙÀ½°ú °°Àº ¿ëµµ·Î »ç¿ëµÈ´Ù.
AL: ȸéÀ» ½ºÅ©·ÑÇÒ ÁÙÀÇ ¼ö (0À̸é ȸéÀ» Áö¿î´Ù)
CH: °¡»ó À©µµ¿ìÀÇ ÁÂÃø»ó´Ü XÁÂÇ¥ (row)
CL: °¡»ó À©µµ¿ìÀÇ ÁÂÃø»ó´Ü YÁÂÇ¥ (column)
DH: °¡»ó À©µµ¿ìÀÇ ¿ìÃøÇÏ´Ü XÁÂÇ¥ (row)
DL: °¡»ó À©µµ¿ìÀÇ ¿ìÃøÇÏ´Ü YÁÂÇ¥ (column)
BH: °¡»ó À©µµ¿ìÀÇ ¹è°æ»ö ÄÚµå
AH: ±â´É ¹øÈ£(6:À§·Î ½ºÅ©·Ñ, 7:¾Æ·¡·Î ½ºÅ©·Ñ)
ȸéÀüü¸¦ ¼Ò°ÅÇÒ °æ¿ì¿¡´Â À©µµ¿ì ÁÂÇ¥¸¦ (0,0), (79,24)·Î ÁöÁ¤ÇÏ°í AL¿¡ 0À» ÁÖ¸é µÈ´Ù.
µµ½º ÀÎÅÍ·´Æ®¸¦ »ç¿ëÇÒ °æ¿ì¿¡´Â ÇÁ·Î±×·¥ ù¸Ó¸®¿¡ #include <dos.h>¸¦»ðÀÔÇØ¾ß Çϴµ¥ dos.h¿¡´Â ·¹Áö½ºÅÍ¿¡ °üÇÑ »çÇ×ÀÌ ±¸Á¶Ã¼¿Í °ø¿ëü·Î Á¤ÀǵǾî ÀÖ¾î ±×°ÍÀ» ¿ì¸®°¡ ÇÁ·Î±×·¥¿¡¼ »ç¿ëÇϱâ À§ÇÔÀÌ´Ù.
<dos.h¿¡ »ðÀԵǾî ÀÖ´Â ·¹Áö½ºÅÍ¿¡ °üÇÑ ¼±¾ð>
struct WORDREGS {
unsigned int ax,bx,cx,dx,si,di,cflag,flags;
};
struct BYTEREGS {
unsigned char al,ah,bl,bh,cl,ch,dl,dh;
};
union REGS {
struct WORDREGS x;
struct BYTEREGS h;
};
ax·¹Áö½ºÅÍ´Â al,ah·Î ±¸¼ºµÇ¾î ÀÖ´Ù.(bx,cx,dxµµ ¸¶Âù°¡ÁöÀÌ´Ù)
°ø¿ëü REGS°¡ ¼±¾ðÀÌ µÇ¾î Àִµ¥, ¿ì¸®°¡ ax¸¦ ÁöÁ¤Çϱâ À§Çؼ´Â x.ax,ah³ª alÀ» ÁöÁ¤Çϱâ À§Çؼ´Â h.ah, h.al·Î ±â¼úÇØ¾ß ÇÑ´Ù.
<¸®½ºÆ®6>
void clrscreen()
{
union REGS r; /* °ø¿ëü REGS¸¦ rº¯¼ö¿¡ ÇÒ´ç */
r.h.al = 0; /*½ºÅ©·ÑÇÒ ÁÙÀÇ ¼ö*/
r.h.ch = 0; /*ÁÂÃø ÄÚ³Ê row */
r.h.cl = 0; /*ÁÂÃø ÄÚ³Ê col */
r.h.dh = 24; /*¿ìÃø ÄÚ³Ê row */
r.h.dl = 79; /*¿ìÃø ÄÚ³Ê col */
r.h.bh = 0; /*Ä÷¯ ÄÚµå*/
r.h.ah = 6; /*±â´É ¹øÈ£*/
int86(0x10,&r,&r); /*BIOSÀÎÅÍ·´Æ® 10H È£Ãâ*/
} /*int86()ÇÔ¼ö´Â BIOSÀÎÅÍ·´Æ®¸¦ È£ÃâÇÏ´Â*/
/* ³»ÀåÇÔ¼öÀÌ´Ù */
ÀÌÇØ´Â Àß ¾È°¡Áö¸¸, ¹º°¡ °í±Þ ±â´É ±¸Çö¿¡ ±¸Á¶Ã¼¿Í °ø¿ëü°¡ Å« ºñÁßÀ» Â÷ÁöÇÏ°í ÀÖ´Ù°í ´À²¸ÁöÁö ¾Ê´Â°¡?
¥¹. ¼± Çà ó ¸® ±â
1.¼±Çà 󸮱âÀÇ °³³ä
¼±Çà 󸮱â(preprocessor)¶õ ±× ´Ü¾î¿¡¼ ¾Ë ¼ö ÀÖµíÀÌ ¿ø½Ã ÇÁ·Î±×·¥ÀÌ ÄÄÆÄÀϵDZâ Àü¿¡ ¿ø½Ã ÇÁ·Î±×·¥¿¡ ´ëÇØ ÀÏ·ÃÀÇ ÀÛ¾÷À» ÇàÇÏ´Â °ÍÀ¸·Î, ¿¹¸¦ µé¸é ÇÁ·Î±×·¥ »ó¿¡ ±â¼úµÈ ±âÈ£ÈµÈ ¾à½Ä Ç¥ÇöÀ» ¸ðµÎ ¿ø·¡ÀÇ Ç¥Çö´ë·Î ¹Ù²Ù¾îÁÖ´Â ¿ªÇÒÀ» Çϰųª ´Ù¸¥ ÇÁ·Î±×·¥ ³»¿¡ Æ÷ÇÔ½ÃÅ°´Â µîÀÇ ¿ªÇÒÀ» ÇÑ´Ù.
ÀϹÝÀûÀÎ CÄÄÆÄÀÏ·¯(compiler)´Â ¿ø½Ã ÇÁ·Î±×·¥ Àüü¸¦ ¼±Çà 󸮱â·Î ÀÏ´Ü Ã³¸®ÇÑ ÈÄ °è¼ÓÇؼ ÄÄÆÄÀÏ(compile)ÇÏ°í ¸¶Áö¸·À¸·Î ¸µÅ©(link)ÇÔÀ¸·Î½á ½ÇÇà °¡´ÉÇÑ ÇÁ·Î±×·¥(.EXEÈÀÏ)À» »ý¼ºÇÑ´Ù.
2. ½ÇÇà °¡´ÉÇÑ ÇÁ·Î±×·¥ÀÇ »ý¼º °úÁ¤
ÀϹÝÀûÀÎ CÄÄÆÄÀÏ·¯¿¡ ÀÇÇؼ ¿ø½Ã ÇÁ·Î±×·¥ÀÌ ½ÇÇà °¡´ÉÇÑ ÇÁ·Î±×·¥À¸·Î ¸¸µé¾îÁö´Â °úÁ¤À» ±×¸²À¸·Î ³ªÅ¸³»¸é ´ÙÀ½°ú °°´Ù.
|
|
|
¿ø½Ã ÇÁ·Î±×·¥ |
|
|
|
|
|
|
|
|
|
|
||
|
|
|
|
|
|
¼±Çà 󸮱â |
|
|
|
|
|
|
|
||
|
|
|
Áß°³ ÇÁ·Î±×·¥ |
|
|
|
|
|
|
|
|
|
|
||
|
|
|
|
|
|
ÄÄÆÄÀÏ·¯ |
|
|
|
|
|
|
|
||
¶óÀ̺귯¸® |
|
¸ñÀû ÇÁ·Î±×·¥ |
|
|
|
||
|
|
|
|
||||
|
|
|
|
|
|
¸µÄ¿ |
|
|
|
|
|
|
|
||
|
|
|
|
|
|
|
|
|
|
|
½ÇÇà ÇÁ·Î±×·¥ |
|
|
|
|
|
|
|
|
|
|
ÄÄÆÄÀÏ·¯ÀÇ ÀÔÀå¿¡¼ º¸¸é ¼±Çà 󸮱⿡ ÀÇÇؼ ó¸®µÈ Áß°³ ÇÁ·Î±×·¥Àº ¿ø½Ã ÇÁ·Î±×·¥ÀÇ ÀÏÁ¾À¸·Î Ãë±ÞÇÑ´Ù. Áï ¼±Çà 󸮱â´Â ¸ñÀû ÇÁ·Î±×·¥(±â°è¾î ÇÁ·Î±×·¥)À» »ý¼ºÇÏ´Â °ÍÀÌ ¾Æ´Ï´Ù. ¼±Çà 󸮱Ⱑ ÇÏ´Â ÀÛ¾÷Àº ¿ø½Ã ÇÁ·Î±×·¥À» ÄÄÆÄÀÏÇϱâ ÁÁµµ·Ï °¡°øÇÏ´Â ÀÛ¾÷À̶ó ÇÒ ¼ö ÀÖ´Ù. ´Ù½Ã ¸»Çؼ ¼±Çà 󸮱â´Â ¿ø½Ã ÇÁ·Î±×·¥ ³»ÀÇ ¸ðµç ¼±Çà 󸮱â Áö½Ã¾î¸¦ ÄÄÆÄÀÏ ÇÒ ¼ö ÀÖ´Â C¹®ÀåÀ¸·Î ¹Ù²Ù¾î ÁÖ´Â ÀÛ¾÷À» ¼öÇàÇÑ´Ù.
¼±Çà 󸮱âÀÇ ´ëÇ¥ÀûÀÎ Áö½Ã¾î´Â #define°ú #include¹®ÀÌ´Ù.
3. #define¹®¿¡ ÀÇÇÑ ´Ü¼ø ´ëü
1) #define¹®À̶õ
#define¹®Àº ¼±Çà 󸮱â Áö½Ã¾î Áß¿¡¼ °¡Àå ¸¹ÀÌ »ç¿ëµÇ´Â °Í ÁßÀÇ Çϳª·Î¼ ¸ÅÅ©·Î¸¦ Á¤ÀÇÇÒ ¶§ »ç¿ëÇÑ´Ù. Áï ´Ü¼øÇÑ »ó¼ö¿¡¼ºÎÅÍ ¸Å¿ì º¹ÀâÇÑ ÇüÅÂÀÇ ¹®ÀåµéÀ» °£´ÜÇÑ À̸§À¸·Î Á¤ÀÇÇϱâ À§Çؼ »ç¿ëÇÑ´Ù.
2) #define¹®¿¡ ÀÇÇÑ ´Ü¼ø ´ëü
#define¹®¿¡ ÀÇÇÏ¿© ´Ü¼ø ´ëü½Ãų ¶§ÀÇ ÀϹÝÀûÀÎ Çü½ÄÀº ´ÙÀ½°ú °°´Ù.
<ÀϹÝÇü½Ä>
#define ¸ÅÅ©·Î¸í ´ëü ¹®ÀÚ¿ (¶Ç´Â ½Ä) |
[º¸±â] #define¹®ÀÇ »ç¿ë ¿¹
#define PI 3.141592
↓ ¸ÅÅ©·Î ↁġȯ ¹®ÀÚ¿
¼±Çà 󸮱â Áö½Ã¾î
À§ÀÇ #define¹®Àº ¸ÅÅ©·Î PIÀÇ °ªÀ¸·Î ġȯ ¹®ÀÚ¿ 3.141592¸¦ »ç¿ëÇϵµ·Ï Á¤ÀÇÇÑ °ÍÀÌ´Ù. Áï ¼±Çà󸮱⿡ ÀÇÇÏ¿© #defineÀ¸·Î Á¤ÀǵǾî ÀÖ´Â ¸ÅÅ©·Î¸íÀ» ¿ø½Ã ÇÁ·Î±×·¥(source program)¿¡¼ Ž»öÇÏ¿© ¸ðµÎ ´ëü ¹®ÀÚ¿·Î ´ëü½ÃŲ´Ù.
¸ÅÅ©·Î¸í°ú ´ëü ¹®ÀÚ¿ »çÀÌ´Â ÇÑ°³ ÀÌ»óÀÇ °ø¹é ¹®ÀÚ·Î ¹Ýµå½Ã ºÐ¸®ÇÏ¿©¾ß ÇÑ´Ù. ±×¸®°í ¸ÅÅ©·Î¸íÀº ÀÏ¹Ý º¯¼öó·³ ¼Ò¹®ÀÚ¸¦ »ç¿ëÇÏ¿©µµ °ü°è¾øÀ¸³ª ÀÏ¹Ý º¯¼ö¿Í ±¸º°Çϱâ À§ÇÏ¿© ´ë¹®ÀÚ¸¦ »ç¿ëÇÏ´Â °ÍÀÌ °ü·Êó·³ µÇ¾î ÀÖ´Ù.
4. ¼±Çà 󸮱âÀÇ µ¿ÀÛ ÀýÂ÷
¿ø½Ã ÇÁ·Î±×·¥ÀÌ ½ÇÇà °¡´ÉÇÑ ÇÁ·Î±×·¥À¸·Î ¸¸µé¾îÁö±â±îÁöÀÇ °úÁ¤À» ¼±Çà󸮱⸦ Áß½ÉÀ¸·Î ÇÏ¿© ³ªÅ¸³»¸é ´ÙÀ½°ú °°´Ù.
¿ø½Ã ÇÁ·Î±×·¥ |
#define PI 3.141592
main( ) { printf("¿øÁÖÀ² = %d\n", PI); } |
|
|||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
¼±Çà 󸮱â |
|
|
||
|
|
|
|
|
|||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
¼±Çà 󸮱⿡ ÀÇÇØ º¯°æµÈ Áß°³ ÇÁ·Î±×·¥ |
main( ) { printf("¿øÁÖÀ² = %d\n", 3.141592); } ↓ PI°¡ ġȯµÈ °ª |
|
|||||
|
|||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
ÄÄÆÄÀÏ·¯ |
|
|
||
|
|
|
|
|
|||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
¸µ Ä¿ |
|
|
||
|
|
|
|
|
|||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
½ÇÇà ÇÁ·Î±×·¥ (.EXEÇÁ·Î±×·¥) |
|
|
||
|
|
|
|
|
¡º ½Ç½À 10-01 ¡»¿¹Á¦ ÇÁ·Î±×·¥
/*------------------------------------------------------------------------------------------------
* c10-01.c
*------------------------------------------------------------------------------------------------*/
#define PI 3.141592
#define R 10
main( )
{
float area, length;
area = PI * R * R;
length = 2 * PI * R;
printf("¿øÀÇ ¸éÀû = %f\n", area);
printf("¿øÀÇ µÑ·¹ = %f\n", length);
}
¢Ñ½ÇÇà °á°ú
c>10-01
¿øÀÇ ¸éÀû = 314.159200
¿øÀÇ µÑ·¹ = 62.831841
¡¶¿¬½À 1¡·À§ ÇÁ·Î±×·¥ÀÌ ¼±Çà 󸮱⿡ ÀÇÇØ Ã³¸®µÈ Áß°³ ÇÁ·Î±×·¥Àº ?
% ¸¸ÀÏ ¹ÝÁö¸§ÀÌ 30ÀÎ ¿øÀÇ ¸éÀû°ú ¿øÀÇ µÑ·¹¸¦ ±¸ÇÏ·Á¸é À§ ÇÁ·Î±×·¥À» ¾î¶»°Ô º¯°æ ÇÏ¿©¾ß ÇÒ±î ?
ÇÁ·Î±×·¥ÀÇ º»¹®Àº ±×´ë·Î µÎ°í #define¹®¸¸À» ´ÙÀ½°ú °°ÀÌ ¼öÁ¤ÇÏ¸é µÈ´Ù.
#define R 30
À§ÀÇ ¼±Çà 󸮱âÀÇ Áö½Ã¾îÀÎ #define¹®À» »ç¿ëÇϸé ÇÁ·Î±×·¥ ³»ÀÇ ¸ðµç °ü°èµÇ´Â µ¥ ÀÌÅ͸¦ ¼öÁ¤ÇÒ ÇÊ¿ä¾øÀÌ ÇØ´çµÇ´Â #define¹®¸¸ ¼öÁ¤ÇÏ¸é µÇ¹Ç·Î ÇÁ·Î±×·¥ÀÇ ¼öÁ¤À» ¼Õ½±°Ô ÇÒ ¼ö ÀÖ´Ù.
¡º ½Ç½À 10-02 ¡»¿¹Á¦ ÇÁ·Î±×·¥
/*------------------------------------------------------------------------------------------------
* c10-02.c
*------------------------------------------------------------------------------------------------*/
#define LINE printf("====================\n");
#define TEXT printf(" ÃàÇÏÇÕ´Ï´Ù!!! \n");
main( )
{
LINE
TEXT
LINE
}
¢Ñ½ÇÇà °á°ú
c>10-02
=====================
ÃàÇÏÇÕ´Ï´Ù!!!
=====================
¡¶¿¬½À 2¡·À§ ÇÁ·Î±×·¥ÀÌ ¼±Çà 󸮱⿡ ÀÇÇØ Ã³¸®µÈ Áß°³ ÇÁ·Î±×·¥Àº ?
¡º ½Ç½À 10-03 ¡»¿¹Á¦ ÇÁ·Î±×·¥
/*------------------------------------------------------------------------------------------------
* c10-03.c
*------------------------------------------------------------------------------------------------*/
#define BANBOK for( i=1; i<=10; i++ )
#define PRINT_I printf("%3d", i);
main( )
{
int i;
BANBOK
PRINT_I
}
¢Ñ½ÇÇà °á°ú
c>10-03
1 2 3 4 5 6 7 8 9 10
¡¶¿¬½À 3¡·À§ ÇÁ·Î±×·¥ÀÌ ¼±Çà 󸮱⿡ ÀÇÇØ Ã³¸®µÈ Áß°³ ÇÁ·Î±×·¥Àº ?
5. Àμö¸¦ °®´Â ¸ÅÅ©·Î Á¤ÀÇ
#define¹®À» »ç¿ëÇÏ¿© Àμö¸¦ Æ÷ÇÔÇÏ´Â ¸ÅÅ©·Î¸¦ Á¤ÀÇÇÒ ¼ö Àִµ¥ ±× ÀÏ¹Ý Çü½ÄÀº ´ÙÀ½°ú °°´Ù.
<ÀϹÝÇü½Ä>
#define ¸ÅÅ©·Î¸í(°¡Àμö, °¡Àμö ) ½Ä(¶Ç´Â ´ëü ¹®ÀÚ¿) |
[º¸±â] #define¹®ÀÇ »ç¿ë ¿¹
#define SQR (x) x*x
↓ ↁ°¡Àμöↁ½Ä(°¡Àμö¸¦ Æ÷ÇÔÇÑ ¸ÅÅ©·Î º»Ã¼)
¸ÅÅ©·Î ¸í
¡º ½Ç½À 10-04 ¡»¿¹Á¦ ÇÁ·Î±×·¥
/*------------------------------------------------------------------------------------------------
* c10-04.c
*------------------------------------------------------------------------------------------------*/
#define SQR(x) x*x
#define PRINT(X) printf("%d ^ 2 = %d\n", x, SQR(x));
main( )
{
int x=2, y;
y=SQR(x+3);
PRINT(X)
PRINT(3)
PRINT(y)
}
¢Ñ½ÇÇà °á°ú
c>10-04
2 ^ 2 = 4
3 ^ 2 = 9
11 ^ 2 = 121
À§ ÇÁ·Î±×·¥¿¡¼ »ç¿ëµÈ ¾Æ·¡ ¹®ÀåµéÀº
y=SQR(x+3);
PRINT(X)
PRINT(3)
PRINT(y)
Àº ¼±Çà 󸮱⿡ ÀÇÇÏ¿© ´ÙÀ½°ú °°ÀÌ ´ëüµÈ´Ù.
printf("%d ^ 2 = %d\n", x, x*x);
printf("%d ^ 2 = %d\n", 3, 3*3);
printf("%d ^ 2 = %d\n", y, y*y);
¡¶¿¬½À 4¡·À§ ÇÁ·Î±×·¥ÀÇ ¾î´À ºÎºÐÀ» ¼öÁ¤ÇÏ¿©¾ß ½ÇÇà °á°ú°¡ ´ÙÀ½°ú °°ÀÌ Ãâ·Â µÇ°Ú´Â °¡?
¢Ñ½ÇÇà °á°ú
c>10-04
2 ^ 2 = 4
3 ^ 2 = 9
5 ^ 2 = 25
¡º ½Ç½À 10-05 ¡»¿¹Á¦ ÇÁ·Î±×·¥
/*------------------------------------------------------------------------------------------------
* c10-05.c
*------------------------------------------------------------------------------------------------*/
#define leap_year(year) ( year %4 == 0 && year % 100 != 0 \
|| year % 400 == 0 )
main( )
{
int y;
printf("¿¬µµ = ? ");
scanf("%d", &y);
if ( leap_year (y) )
printf("%d³âÀº À±³âÀÌ´Ù.\n", y);
else
printf("%d³âÀº Æò³âÀÌ´Ù.\n", y);
}
¢Ñ½ÇÇà °á°ú ¢Ñ½ÇÇà °á°ú ¢Ñ½ÇÇà °á°ú
c>10-05 c>10-05 c>10-05
¿¬µµ = ? 1991 ¿¬µµ = ? 2000 ¿¬µµ = ? 2100
1991³âÀº Æò³âÀÌ´Ù. 2000³âÀº À±³âÀÌ´Ù. 2100³âÀº Æò³âÀÌ´Ù.
% ¾Æ·¡ÀÇ ¹®Àå¿¡¼ »ç¿ëµÈ \´Â ÇàÀ» °è¼ÓÇϱâ À§ÇÏ¿© »ç¿ëµÇ¾ú´Ù.
#define leap_year(year) ( year %4 == 0 && year % 100 != 0 \
|| year % 400 == 0 ) Çà °è¼Ó¹®ÀÚ
¡¶¿¬½À 5¡·À§ ÇÁ·Î±×·¥ÀÌ ¼±Çà 󸮱⿡ ÀÇÇØ Ã³¸®µÈ Áß°³ ÇÁ·Î±×·¥Àº ?
¡º ½Ç½À 10-06 ¡»¿¹Á¦ ÇÁ·Î±×·¥
/*------------------------------------------------------------------------------------------------
* c10-06.c
*------------------------------------------------------------------------------------------------*/
#define ABS(x) ((x<0) ? (-x) : (x) )
main( )
{
int n, result;
printf("n = ? ");
scanf("%d", &n);
printf("ABS(%d) = %d\n", n, ABS(n));
}
¢Ñ½ÇÇà °á°ú ¢Ñ½ÇÇà °á°ú ¢Ñ½ÇÇà °á°ú
c>10-05 c>10-05 c>10-05
x = ? -14 x = ? 14 x = ? 0
ABS(-14) = 14 ABS(14) = 14 ABS(0) = 0
À§ ÇÁ·Î±×·¥Àº ¸Þ¸ð¸® È¿À²¼º ¹®Á¦¿Í ¼Óµµ ¹®Á¦ µîÀ» °í·ÁÇÏ¿© ÇÔ¼ö¸¦ »ç¿ëÇÏÁö ¾Ê°í ¸ÅÅ©·Î·Î Á¤ÀÇÇÑ ¿¹ÀÌ´Ù.
6. #include¹®
1) #include¹®ÀÇ ±â´É
#include¹®Àº ÄÄÆÄÀÏ·¯¿¡°Ô ´Ù¸¥ ÁöÁ¤µÈ ¿ø½Ã ÈÀÏÀ» ¸ÞÀÎ ¿ø½Ã ÇÁ·Î±×·¥¿¡ Æ÷ÇÔ ½ÃÅ°µµ·Ï Áö½ÃÇÒ ¶§ »ç¿ëÇÑ´Ù.
¿¹¸¦ µé¸é °¢Á¾ ¸ÅÅ©·Î Á¤Àǹ®¸¸À» µû·Î ¸ð¾Æ ÇϳªÀÇ ÈÀÏ·Î Á¤ÀÇÇØ ³õ°í ÀÌ ¸ÅÅ©·Î°¡ ÇÊ¿äÇÑ ÇÁ·Î±×·¥¿¡¼ #include¹®À» »ç¿ëÇÏ¿© ÀÐ¾î µéÀ̵µ·Ï Çϸé ÇÁ·Î±×·¥ÀÇ Å©±â¸¦ ÁÙÀϼö ÀÖÀ» »Ó¸¸¾Æ´Ï¶ó °ü¸®Çϱ⵵ Æí¸®ÇØÁø´Ù.
µû¶ó¼ ¸Å¿ì º¹ÀâÇÑ µ¥ÀÌÅÍ ±¸Á¶³ª ¿©·¯ ÇÁ·Î±×·¥¿¡¼ °øÅëÀ¸·Î »ç¿ëµÇ´Â µ¥ÀÌÅ͵鵵 ÇÑ ÆÄÀÏ·Î µû·Î ±¸¼ºÇØ ³õ°í ÇÊ¿äÇÑ ÇÁ·Î±×·¥¿¡¼ #include¹®À» »ç¿ëÇؼ ¿ø½Ã ÇÁ·Î±×·¥ ³»¿¡ Æ÷ÇÔ½ÃÅ°¸é Æí¸®ÇÒ °ÍÀÌ´Ù.
2) #include¹®ÀÇ ÀϹÝÇü½Ä
#include¹®ÀÇ ÀÏ¹Ý Çü½ÄÀº ´ÙÀ½°ú °°´Ù.
<ÀϹÝÇü½Ä>
#include <ÈÀÏÀ̸§> ¶Ç´Â #include "ÈÀÏÀ̸§" |
[º¸±â] #define¹®ÀÇ »ç¿ë ¿¹
¨ç #include <stdio.h>
¨è #include "b:sample.c"
¨çÀº ½Ã½ºÅÛ µð·ºÅ丮¿¡ ÁغñµÇ¾î ÀÖ´Â stdio.h ÈÀÏÀ» ÀÛ¼º ÁßÀÎ ÇÁ·Î±×·¥¿¡ Æ÷ÇÔ ½ÃÅ°¶ó´Â Áö½ÃÀÌ´Ù.
¨è´Â »ç¿ëÀÚ°¡ ÀÛ¼ºÇÑ b:µå¶óÀ̺ê Áß¿¡¼ sample.cÈÀÏÀ» ÀÛ¼ºÁßÀÎ ÇÁ·Î±×·¥¿¡ Æ÷ÇÔ ½ÃÅ°¶ó´Â Áö½ÃÀÌ´Ù.
% ÀϹÝÀûÀ¸·Î #include ¹® ±â¼ú½Ã¿¡ < >´Â ½Ã½ºÅÛÀÌ ¹Ì¸® ÁغñÇØ ³õÀº Æ÷ÇÔ ÈÀÏÀ» ÀÐ¾î µéÀ϶§ »ç¿ëÇÏ°í, " "´Â »ç¿ëÀÚ ÀÚ½ÅÀÌ ÀÛ¼ºÇÑ Æ÷ÇÔ ÈÀÏÀ» ÀÐ¾î µéÀ϶§ »ç ¿ëÇÑ´Ù.
% #include¹® ´ÙÀ½¿¡ ±â¼úÇÏ´Â ÈÀÏ À̸§¿¡´Â pathÁöÁ¤À» Æ÷ÇÔ ½Ãų¼ö ÀÖ´Ù. MS-DOS ¿¡¼ path ÁöÁ¤½Ã¿¡ \¸¦ »ç¿ëÇϵíÀÌ #include¹®¿¡¼µµ \¸¦ »ç¿ëÇÑ´Ù.
[º¸±â] pathÁöÁ¤ ¿¹
#include "b:\work\sample.c"
% #include¹® ´ÙÀ½¿¡ »ç¿ëµÇ´Â ÈÀÏÀÇ È®ÀåÀÚ´Â ¾î¶°ÇÑ ¿µ¹®ÀÚ¸¦ »ç¿ëÇصµ °ü°è¾øÀ¸³ª ÀϹÝÀûÀ¸·Î ´ÙÀ½°ú °°Àº µÎ°¡ÁöÀÇ ¹®ÀÚ°¡ ¸¹ÀÌ »ç¿ëµÈ´Ù.
.h header ÈÀÏ·Î »ç¿ëµÉ °æ¿ì
.c »ç¿ëÀÚ°¡ C¾ð¾î·Î ÀÛ¼ºÇÑ ÈÀÏÀ» »ç¿ëÇÒ °æ¿ì
% header ÈÀÏÀ̶õ Æ÷ÇÔ½Ãų ÈÀÏ¿¡ #define¹®À̳ª #include¹® ¶Ç´Â ¿ÜºÎ º¯¼ö ȤÀº ÇÔ¼öÀÇ ¼±¾ð µîÀ» Æ÷ÇÔÇÑ ÈÀÏÀ» ¸»ÇÑ´Ù. ÀÌ ÈÀÏÀÇ ³»¿ëÀº C¾ð¾îÀÇ ¹®¹ý¿¡ ¸Â´Â °ÍÀ̶ó¸é ¾î¶°ÇÑ °ÍÀÌµç °ü°è¾øÀÌ »ç¿ëÇÒ ¼ö ÀÖ´Ù.
¡º ½Ç½À 10-07 ¡»´ÙÀ½°ú °°Àº ÈÀÏÀ» ÀÛ¼ºÇÏ¿© sample.h¶ó´Â À̸§À¸·Î ÀúÀåÇÏÀÚ.
/*------------------------------------------------------------------------------------------------
* c10-07.c
*------------------------------------------------------------------------------------------------*/
#define ADD add= a+b;
#define SUB sub= a-b;
#define MUL mul= a*b;
#define DIV div= a/b;
¡º ½Ç½À 10-08 ¡»´ÙÀ½ ÇÁ·Î±×·¥À» ÀÛ¼ºÇÏ¿© ÄÄÆÄÀÏÇÑ ÈÄ ½ÇÇàÇÏ¿© º¸ÀÚ
/*------------------------------------------------------------------------------------------------
* c10-08.c
*------------------------------------------------------------------------------------------------*/
#include "sample.h"
main( )
{
int a=20, b=10;
int add, sub, mul, div;
ADD
SUB
MUL
DIV
printf("%d + %d = %3d\n", a, b, a+b);
printf("%d - %d = %3d\n", a, b, a-b);
printf("%d * %d = %3d\n", a, b, a*b);
printf("%d / %d = %3d\n", a, b, a/b);
}
¢Ñ½ÇÇà °á°ú
c>10-08
10 + 20 = 30
10 - 20 = 10
10 * 20 = 200
10 / 20 = 2
7. ±× ¿ÜÀÇ ¼±Çà 󸮱â (#if, #ifdef, #ifndef, #else, #endif)
À̰͵éÀº Á¶°ÇÀûÀÎ ÄÄÆÄÀÏÀ» °¡´ÉÇÏ°Ô ÇØ Áִµ¥, ´ëÇü ÇÁ·Î±×·¥¿¡¼ ÁÖ·Î »ç¿ëµÈ´Ù.
#ifdef MAVIS
#include "horse.h"
#define STABLES 5
#else
#include "cow.h"
#define STABLES 15
#endif /* if ºí·°ÀÌ ³¡³²À» ¾Ë¸®´Â ±â´ÉÀ» ÇÑ´Ù. */
#ifdefÁöÁ¤¾î´Â ±× ´ÙÀ½¿¡ ¿À´Â ¸íĪ(MAVIS)ÀÌ ¼±Çà󸮱â·Î Á¤ÀǵǾúÀ¸¸é, ±× ÁöÁ¡¿¡¼ ´ÙÀ½¿¡ ¿À´Â #else³ª #endifÀÌÀü±îÁö¿¡ ÀÖ´Â ¸í·ÉµéÀ» ó¸®ÇÏ°Ô ÇÑ´Ù.Áï, #ifdefÀº ´ÙÀ½ÀÇ ¸íĪÀÌ Á¤ÀǵǾúÀ¸¸é ÂüÀÇ ÆÇ´ÜÀ» ÇÏ°í#ifndefÀº ´ÙÀ½ÀÇ ¸íĪÀÌ Á¤ÀÇ°¡ ¾È µÇ¾úÀ¸¸é ÂüÀÇ ÆÇ´ÜÀ» ³»¸°´Ù.
#if SYS == "IBM" /* #if´Â if¹®°ú ±â´ÉÀÌ ºñ½ÁÇÏ´Ù */
#include "ibm.h"
#endif
ÀÌ·¯ÇÑ Á¶°Ç ÄÄÆÄÀÏÀÇ ¿ëµµ´Â ÇÁ·Î±×·¥ÀÇ È£È¯¼ºÀ» ³ôÀ̱â À§ÇÑ °ÍÀÌ´Ù. ÈÀÏ Ã³À½¿¡ ÀÖ´Â ¸î °³ÀÇ Áß¿äÇÑ Á¤ÀǸ¸ ¹Ù²Ù¸é ´Ù¸¥ ½Ã½ºÅÛÀ» À§ÇÑ ´Ù¸¥ÈÀÏÀÌ Æ÷ÇÔµÇ°í ´Ù¸¥ °ªµéÀÌ ¼³Á¤µÈ´Ù.
8. typedef
typedef¹®Àº ÇÁ·Î±×·¡¸Ó ÀڽŸ¸ÀÇ ¼öÇü¸íÀ» ¸¸µé¾î ÁØ´Ù. #define°ú ±â´ÉÀÌ ºñ½ÁÇÏÁö¸¸ ¾Æ·¡¿Í °°Àº Â÷ÀÌÁ¡ÀÌ ÀÖ´Ù.
1) #define¿Í´Â ´Þ¸®, ´ÜÁö µ¥ÀÌÅÍ ¼öÇü¿¡¸¸ ±âÈ£ÀûÀÎ ¸íĪÀ» »ç¿ëÇÒ ¼ö °¡ ÀÖ´Ù.
2) typedef´Â ¼±Çà󸮱⿡ ÀÇÇØ󸮵Ǵ°ÍÀ̾ƴ϶ó ÄÄÆÄÀÏ·¯¿¡ ÀÇÇØ Ã³¸®µÇ´Â ³»Àå¸í·É¾îÀÌ´Ù.
<¸®½ºÆ®10>
typedef float REAL; /* float¼öÇü¸íÀ» REALÀ¸·Î »ç¿ëÇÒ ¼ö ÀÖ´Ù */
typedef char *STRING;
main()
{
REAL a = 12.3243;
STRING name = "We are the world!";
...
À§¿¡¼ STRING name;Àº char *name;°ú °°´Ù.
¶ÇÇÑ ±¸Á¶Ã¼¿¡ ´ëÇؼµµ »ç¿ëÇÒ ¼ö°¡ ÀÖ´Ù.
typedef struct COMPLEX {
float real;
float imag;
};
main()
{
COMPLEX son;
...
<typedef¸¦ »ç¿ëÇÏ´Â ÀÌÀ¯ 3°¡Áö>
(1) ÀÚÁÖ »ç¿ëµÇ´Â ¼öÇü¿¡ ´ëÇؼ ÀνÄÇϱ⠽¬¿î ¸íĪÀ» Á¦°øÇϱâ À§ÇÔÀÌ´Ù.
(2) º¹ÀâÇÑ ¼öÇü¸íÀ» °£´ÜÇÏ°Ô Çϱâ À§ÇؼÀÌ´Ù.
(3) ÇÁ·Î±×·¥ÀÇ À̽ÄÀ» ¿ëÀÌÇÏ°Ô Çϱâ À§ÇؼÀÌ´Ù.
(2)ÀÇ °æ¿ìÀÇ ¿¹¸¦ µé¸é, typedef char *FRPTC () [5];´Â FRPTC°¡ char 5°³·Î ±¸¼ºµÈ ¹è¿À» °¡¸®Å°´Â Æ÷ÀÎÅ͸¦ ¹ÝȯÇÏ´Â ÇÔ¼öÀÇ ¼öÇüÀÓÀ» ³ªÅ¸³½´Ù. ( FRPTC flump;´Â char *flump()[5];¿Í °°´Ù. ) Æ÷ÀÎÅÍÀÇ ±íÀº °÷À¸·Î µé¾î°¡¸é ¾ÆÁÖ º¹ÀâÇÏ°í Çò°¥¸®´Â ¼±¾ðµéÀÌ ¸¹ÀÌÀÖ´Ù. ÀÌ ±ÛÀÇ ¼º°Ý°ú´Â ¸ÂÁö ¾ÊÀ¸¹Ç·Î ÀÚ¼¼ÇÑ ¼³¸íÀº ÇÇÇÏ°Ú´Ù.
(3)ÀÇ °æ¿ìÀÇ ¿¹¸¦ µé¸é, ÇÁ·Î±×·¥ÀÌ 16ºñÆ® ¼ýÀÚ¸¦ »ç¿ëÇÒ ÇÊ¿ä°¡ ÀÖÀ»¶§, ¾î¶² ½Ã½ºÅÛ (OS¿¡ µû¶ó)¿¡¼´Â short°¡ ¾î¶² ½Ã½ºÅÛ¿¡¼´Â int°¡ 16ºñÆ®ÀÌ´Ù. ±× ¶§ ÇÁ·Î±×·¥ÀÇ Ã¹¸Ó¸®¿¡ typedef int TWOBYTE;·Î ¼±¾ðÇØ µÎ°í int¸¦ short·Î¸¸ ¹Ù²Ù¾î ÁÖ¸é ÇÁ·Î ±×·¥ À̽ÄÀ» °£ÆíÈ÷ ÇÒ ¼ö°¡ ÀÖ´Ù.
9. ¸í·ÉÇà ÀÎÀÚ(Command-line arguments)
¾Æ·¡ ÇÑ±Û »ç¿ë½Ã µµ½º¿¡¼ hwp c:\data\letter.hwp¿Í °°ÀÌ ¸í·ÉÀ» ³»¸®¸é ÇÁ·Î±×·¥À» ½ÃÀÛ°ú µ¿½Ã¿¡ letter.hwpÈÀÏÀÌ ¶ß´Â °ÍÀ» ¾Ë°í ÀÖÀ» °ÍÀÌ´Ù. ÀÌ·¯ÇÑ °ÍÀ» ¾î¶»°Ô ±¸ÇöÇÒ±î? ¸í·ÉÇàÀ̶õ ÇÁ·Î±×·¥À» ½ÇÇà½ÃÅ°±â À§ÇØ ¸í·É¾î¸¦ ÀÔ·ÂÇØ ³õÀº ÇàÀ» ¸»ÇÑ´Ù.
¿ì¸®°¡ º¸Åë ÇÁ·Î±×·¥À» ÀÛ¼ºÇÒ ¶§ main( )À̶ó°í¸¸ ±â¼úÇÏ¿´´Âµ¥, main( )ÇÔ¼öµµ ÀÎÀÚ°¡ Á¸ÀçÇÑ´Ù. ¾Æ·¡ ¿¹Á¦¸¦º¸ÀÚ.
<¿¹Á¦8> ¸í·ÉÇà ÀÎÀÚ¸¦ »ç¿ëÇÑ ÇÁ·Î±×·¥ - I
<¸®½ºÆ®11> ÈÀϸíÀ» copystr.c¶ó°í ÇÏÀÚ.
#include <stdio.h>
main(argc, argv)
int argc;
char *argv[];
{
int c;
for (c = 1;c < argc;c++)
printf("%s",argv[c]);
printf("\n");
}
À§ ÇÁ·Î±×·¥À» ÄÄÆÄÀÏ ½ÃŲ ÈÄ, ¸í·ÉÇà¿¡¼ copystr My name is robocap.À̶ó°í ÀÔ·ÂÇϸé, My name is robocap.À̶ó°í Ãâ·ÂÇÑ ÈÄ ÇÁ·Î±×·¥À» Á¾·áÇÑ´Ù.
main( )ÇÔ¼ö´Â µÎ °¡Áö Àμö¸¦ °¡Áø´Ù. ù¹ø ° ÀÎÀÚ(argc)´Â ¸í·É¾î¿¡ µû¸£´Â ¹®ÀÚ¿ÀÇ °¹¼ö¸¦ ³ªÅ¸³½´Ù. argc´Â argument countÀÇ ¾àÀڷνá, ´Ù¸¥ÀÎÀÚ¸íµµ »ç¿ëÇÒ ¼ö ÀÖÀ¸³ª °ü·ÊÀûÀ¸·Î argc¸¦ »ç¿ëÇÑ´Ù. ¹®ÀÚ¿ÀÇ ±¸ºÐÀº°ø¹éÀ¸·Î Çϴµ¥, À§ÀÇ ¿¹Á¦´Â 5°³ÀÇ ¹®ÀÚ¿À» °¡Áø´Ù.
µÎ¹ø° ÀÎÀÚ(argv : argument value)´Â ¹®ÀÚ¿ Æ÷ÀÎÅÍ ¹è¿ÀÌ´Ù. ¸í·ÉÇàÀÇ °¢ ¹®ÀÚ¿Àº ±× Àڽſ¡ ´ëÇÑ Æ÷ÀÎÅÍ·Î ¹è¿¿¡ ÀúÀåµÈ´Ù. À§ÀÇ °æ¿ì,
argv[0]Àº ÇÁ·Î±×·¥¸í copystrÀ» °¡¸®Å²´Ù.
argv[1] = "My" argv[4] = "robocap."À» °¢°¢ °¡¸®Å²´Ù.
argv[2] = "name"
argv[3] = "is"
<¿¹Á¦9> <#1Æí>ÀÇ <¿¹Á¦2>¸¦ ¸í·ÉÇà ÀÎÀÚ¸¦ »ç¿ëÇÏ´Â À¶Å뼺 ÀÖ´Â ÇÁ·Î±×
·¥À¸·Î ¹Ù²ã º¸ÀÚ.
<¸®½ºÆ®12> ÇÁ·Î±×·¥¸íÀÌ son.c¶ó¸é,
#include <stdio.h>
main(int argc,char *argv[])
{
FILE *in;
int ch;
if (argc==1) printf("Usage: son filename.ext\n");
else {
if ((in=fopen(argv[1],"r")) != NULL) {
while ((ch=getc(in)) != EOF)
putc(ch,stdout);
fclose(in);
}
else printf("file not found..\n");
}
}
¥º. ÈÀÏ Á¶ÀÛ / ±âŸÀÇ °Íµé
1. ÀÔÃâ·ÂÀÇ Á¾·ù
ÈÀÏÀ» ´ë»óÀ¸·Î ÇÏ´Â ÀÛ¾÷ÀÇ Á¾·ù´Â ¾²±â, Ãß°¡, ÀбâÀÇ 3°¡Áö·Î ³ª´¼ö ÀÖ´Ù.
⼑ ¾²±â - ÈÀÏÀ» »õ·Î ¸¸µå´Â °ÍÀε¥, ÀÌ¹Ì °°Àº ÈÀÏÀÌ Á¸ÀçÇÏ¸é ±âÁ¸ÀÇÀÚ·á´Â ¸ðµÎ Áö ¿öÁø´Ù.
⼑ Ãß°¡ - ÈÀÏ µÞºÎºÐ¿¡ »õ·Î¿î ÀڷḦ Ãß°¡Çϱâ À§ÇØ »ç¿ëµÇ´Âµ¥, ¼±ÅÃÇÑ ÈÀÏÀÌ ¹ß°ßµÇ Áö ¾ÊÀ¸¸é ±× ÀÚü·Î »õ·Î¿î ÈÀÏÀÌ Çü¼ºµÈ´Ù.
⼑ Àбâ - ÀÌ¹Ì ¸¸µé¾îÁø ÈÀÏ¿¡¼ ÀڷḦ ÀоîµéÀÌ´Â °ÍÀ¸·Î¼, ÇØ´ç ÈÀÏÀÌ Á¸ÀçÇÏÁö ¾Ê À¸¸é ¿¡·¯¸¦ ¹ß»ý½ÃŲ´Ù.
ÀÌ ¼¼°¡Áö ÀÌ¿Ü¿¡µµ 'Àбâ/¾²±â °â¿ë', 'Àбâ/Ãß°¡ °â¿ë'ÀÇ ÇüŸ¦ Áö¿øÇÑ´Ù.
2. ÀÔÃâ·ÂÀÇ ÀýÂ÷
ÈÀÏÀ» ´ë»óÀ¸·Î ÀÛ¾÷ÇÏ´Â °æ¿ì¿¡´Â ¹Ýµå½Ã ´ÙÀ½ÀÇ ÀýÂ÷¸¦ °ÅÃÄ¾ß ÇÑ´Ù.
(1) ÈÀÏ open - ÀÔÃâ·Â ´ë»óÀÌ µÇ´Â ÈÀϸí°ú mode¸¦ ÁöÁ¤ÇÏ´Â ÀýÂ÷
(ÈÀÏ ÀÔÃâ·ÂÀ» À§ÇÑ ¹öÆÛ¸¦ ÇÒ´çÇÏ°Ô µÈ´Ù)
(2) ÀÔÃâ·Â ¼öÇà
(3) ÈÀÏ close - ÀÔÃâ·Â °úÁ¤À» ³¡³½ ´ÙÀ½¿¡´Â ¹Ýµå½Ã ÀÌ °úÁ¤À» ½ÇÇà½ÃÄÑ (1)¿¡¼ ÇÒ´ç µÈ ¹öÆÛ¸¦ ÇØÁ¦ÇØ¾ß ÇÑ´Ù. ÈÀÏÀ» ´ÝÁö ¾ÊÀºÃ¤ ÇÁ·Î±×·¥ÀÇ ½ÇÇàÀ» Á¾·á ½ÃÅ°¸é ÈÀÏÀÌ ±úÁö´Â °æ¿ì°¡ ÀÖÀ¸¹Ç·Î ÁÖÀÇ ÇÏ¿©¾ß ÇÑ´Ù.
3. ÈÀÏ Ã³¸®¿¡ °üÇÑ ÇÔ¼ö
1) ÈÀÏÀÇ °³¹æ
⼑¼±¾ð¹® FILE *fp : ÈÀÏ ±¸Á¶Ã¼ Æ÷ÀÎÅÍ º¯¼ö¸¦ ¼±¾ðÇÑ´Ù. ÀÌ ÇÔ¼ö´Â º¯¼öÀÇ ¼±¾ð ºÎºÐ (º¸Åë ¼±¾ðºÎÀÇ ¸Ç ³¡)¿¡¼ Á¤ÀÇÇÑ´Ù.(fp´Â ÀÓÀÇ º¯¼öÀÓ) ===> <stdio.h>¿¡ ÈÀÏ¿¡ °üÇÑ ÀÚ·áµéÀ» ÀúÀåÇÒ °ø°£ÀÌ ±¸Á¶Ã¼ 'FILE'·Î ¼±¾ðµÇ¾î ÀÖ´Ù.
⼑fp = fopen("ÈÀϸí","mode") : ÈÀÏÀ» ¿ÀÇÂÇÏ°í ÈÀÏ Æ÷ÀÎÅ͸¦ ÃʱâÈÇÑ´Ù. ÈÀÏ Æ÷ÀÎÅÍ ´Â ÀÚ·á°¡ ÈÀÏ ³»ÀÇ ¾î´À ºÎºÐ¿¡ À§Ä¡ÇØ ÀÖ´ÂÁö¸¦ ±â¾ï ÇÏ´Â º¯¼ö·Î¼ ÀڷḦ Àаųª ¾µ ¶§¸¶´Ù ÀÚ·áÀÇ Å©±â¸¸Å µÚ·Î À̵¿ÇÑ´Ù. ÈÀÏ¿ÀÇ¿¡ ½ÇÆÐÇϸé ÀÌ ÇÔ¼öÀÇ °ªÀº null pointer°¡ µÈ´Ù. mode´Â ¾Æ·¡ÀÇ ¸ðµå°¡ ÀÖ´Ù.
<ÈÀÏÆ÷ÀÎÅÍ À§Ä¡>
"r" : ÈÀÏÀ» Àбâ Àü¿ëÀ¸·Î ¿¬´Ù(read) ÈÀÏ Ã³À½
"w" : ÈÀÏÀ» »õ·ÎÀÌ »ý¼ºÇÏ°í ¾²±â Àü¿ëÀ¸·Î ¿¬´Ù(write) ÈÀÏ Ã³À½
"a" : ÈÀÏÀ» Ãß°¡ Àü¿ëÀ¸·Î ¿¬´Ù(append) ÈÀÏ ³¡
"r+" : ÈÀÏÀ» °»½Å¿ëÀ¸·Î ¿¬´Ù(Àбâ,¾²±â ¸ðµÎ °¡´É) ÈÀÏ Ã³À½
"w+" : ÈÀÏÀ» »õ·ÎÀÌ »ý¼ºÇÏ°í °»½Å¿ëÀ¸·Î ¿¬´Ù ÈÀÏ Ã³À½
"a+" : ÈÀÏÀÌ ¾ø´Â °æ¿ì »õ·ÎÀÌ »ý¼ºÇÏ°í °»½Å¿ëÀ¸·Î ÈÀÏ ³¡
¿¬´Ù
¸ðµåÁöÁ¤¹®ÀÚ µÚ¿¡ t³ª b¸¦ ºÙ¿© ÅؽºÆ®ÈÀÏ°ú ÀÌÁøÈÀÏÀÓÀ» ÁöÁ¤ÇÒ ¼ö ÀÖ´Ù. ÅؽºÆ® ÈÀÏÀº ASCIIÄڵ带 ÀÌ¿ëÇÏ¿© ¹®Àڷνá ÀúÀåµÈ ÈÀÏÀ» ¸» ÇÏ°í, ÀÌÁø ÈÀÏÀº ±â°è¾îÄڵ带 ÀúÀåÇÒ ¶§ »ç¿ëµÇ´Â ÈÀÏ Çü½ÄÀÌ´Ù.
⼑freopen("ÈÀϸí","mode",fp) : fp°¡ °¡¸®Å°´Â ÈÀÏÀ» ´Ý°í »õ·Î¿î ¸ðµå·Î ´Ù½Ã ¿¬´Ù. ÀÌ
ÇÔ¼ö´Â ÀÌ¹Ì ¿ÀÇÂµÈ ÇÔ¼öÀÇ ¸ðµå¸¦ ¹Ù²Ù´Â °æ¿ì¿¡ ÀÌ¿ëÇÑ ´Ù.
2) ÈÀÏÀÇ Á¾°á
⼑fclose(fp) : fp·Î ÁöÁ¤ÇÑ ÈÀÏÀ» ´Ý´Â ÇÔ¼öÀÌ´Ù. fclose()ÇÔ¼ö´Â ¼º°øÀûÀÎ ÆмâÀ̸é 0À»,
±×·¸Áö ¸øÇϸé -1À» ¹ÝȯÇÑ´Ù.
3) ÈÀÏ ÀÔÃâ·Â ÇÔ¼ö
⼑fputs("¹®ÀÚ¿/º¯¼ö",fp) : ¹®ÀÚ¿À» ÈÀÏ Æ÷ÀÎÅÍ°¡ °¡¸®Å°´Â À§Ä¡¿¡ ¼ö·ÏÇÑ´Ù. ¹®ÀÚ¿À» ¼ö·ÏÇÑ ´ÙÀ½¿¡´Â ÈÀÏ Æ÷ÀÎÅÍ fp°¡ ¹®ÀÚ¿ÀÇ ±æÀ̸¸Å µÚ·Î ÀÌ µ¿ÇÑ´Ù.
⼑fputc(fp,'¹®ÀÚ') : ¹®ÀÚ 1°³¸¦ ÈÀÏ¿¡ Ãâ·ÂÇÑ´Ù.
⼑fprintf(fp,"¼½ÄÁ¦¾î¹®ÀÚ¿",º¯¼ö,..) : º¯¼öÀÇ ³»¿ëÀ» ¼½ÄÁ¦¾î ¹®ÀÚ¿ÀÇ Æ÷¸Ë¿¡ ¸ÂÃß¾î
ÈÀÏ¿¡ Ãâ·ÂÇÑ´Ù. Ãâ·Â ¸Åü°¡ ÈÀÏÀ̶ó´Â °Í¸¸
´Ù¸¦ »Ó printf()ÇÔ¼ö¿Í ¿ë¹ýÀÌ °°´Ù.
⼑fgets(º¯¼ö,±æÀÌ,fp) : ÈÀÏ Æ÷ÀÎÅÍ°¡ °¡¸®Å°´Â À§Ä¡¿¡¼ ÁöÁ¤µÈ (±æÀÌ-1)¸¸ÅÀڷḦ Àоî
º¯¼ö¿¡ ÇÒ´çÇÑ´Ù. º¯¼öÀÇ ¸¶Áö¸·¿¡´Â '\0'ÀÌ Ãß°¡µÇ´Âµ¥ ÈÀÏÀÇ ÀÚ ·á ³»ºÎ¿¡ '\n'ÀÌ Àְųª ÈÀÏÀÌ ³¡³¯°æ¿ì¿¡´Â ±× ½ÃÁ¡±îÁö¸¸ ÀÐ¾î µéÀδÙ. ÈÀÏ¿¡¼ ÁöÁ¤µÈ ±æÀ̸¸Å ÀоîµéÀÏ ¶§´Â ¼ö·ÏµÈ ¹®ÀÚ¿ ÀÇ ±æÀ̺¸´Ù 1¹®ÀÚ ´õ Å©°Ô ÁöÁ¤ÇØ¾ß ÇÑ´Ù.
⼑fgetc(fp) : ÈÀÏ¿¡¼ ÇÑ ¹®ÀÚ¸¦ ÀÐ¾î µéÀδÙ. (³»ÀåÇÔ¼öÀÌ´Ù)
⼑getc(fp) : ÈÀÏ¿¡¼ ÇÑ ¹®ÀÚ¸¦ ÀÐ¾î µéÀδÙ. (¸ÅÅ©·ÎÇÔ¼öÀÌ´Ù)
⼑fscanf(fp,"¼½ÄÁ¦¾î ¹®ÀÚ¿",º¯¼ö,..) : ÈÀÏ¿¡¼ ¼½ÄÁ¦¾î ¹®ÀÚ¿ÀÇ Æ÷¸Ë´ë·Î ÀڷḦ Àоî
µé¿© º¯¼ö¿¡ ÇÒ´çÇÑ´Ù. ÀԷ¸Åü°¡ ÈÀÏÀ̶ó´Â °Í ¸¸ ´Ù¸¦ »Ó scanf()ÇÔ¼ö¿Í µ¿ÀÏÇÏ´Ù.
⼑fread(º¯¼ö,±æÀÌ,°¹¼ö,fp) : ÈÀÏ Æ÷ÀÎÅÍÀÇ ÇöÀç À§Ä¡¿¡¼ ÁöÁ¤µÈ ±æÀ̸¸Å ÁöÁ¤µÈ °¹¼ö¸¦ ÀоîµéÀδÙ. ÈÀÏ ³¡ÀÌ °ËÃâµÇ¸é ±× ½ÃÁ¡¿¡¼ ÀоîµéÀÌ´Â °Í À» ¸ØÃá´Ù. ÇÔ¼öÀÇ °ªÀº Á¤»ó ¼öÇàÀÎ °æ¿ì¿¡´Â ÀоîµéÀÎ °¹ ¼ö°¡ µÇ¸ç, ÈÀÏÀÇ ³¡À» °ËÃâÇßÀ» °æ¿ì¿¡´Â 0À̵ȴÙ.
⼑fflush(fp) : ¹öÆÛ ³»ÀÇ ÀڷḦ ºñ¿î´Ù. µð½ºÅ©¿¡ ¼ö·ÏÇÒ ÀÚ·á°¡ ÀÖÀ¸¸é µð½ºÅ©¿¡ ¼ö·ÏÇÒ
ÀÚ·á°¡ ÀÖÀ¸¸é µð½ºÅ©¿¡ ¼ö·ÏÇÑ ÈÄ ¹öÆÛ¸¦ ºñ¿î´Ù. º¸ÅëÀº ÀÚ·áÀÇ ¼ö·ÏÀ» È® ½ÇÈ÷ Çϱâ À§ÇÏ¿© »ç¿ëµÈ´Ù. fclose()ÇÔ¼ö°¡ ¼öÇàµÇ¸é ÀÚµ¿À¸·Î fflush()ÇÔ¼ö°¡ ¼öÇàµÈ´Ù.
⼑feof(fp) : ÈÀÏÀÇ ³¡ÀÎÁö¸¦ÆÇÁ¤ÇÑ´Ù. ÈÀÏÀÇ ³¡À̾ƴϸé 0ÀÌ¿ÜÀÇ °ªÀÌ µÇ°í, ³¡À̸é 0ÀÌ µÈ´Ù.
⼑ftell(fp) : ÈÀÏ Æ÷ÀÎÅÍÀÇ À§Ä¡¸¦ ±¸ÇÑ´Ù.
⼑fseek(fp,»ó´ëÀ§Ä¡,¸ðµå) : ÈÀÏ Æ÷ÀÎÅÍÀÇ À§Ä¡¸¦ º¯°æÇÑ´Ù. »ó´ë À§Ä¡´Â ¼öÄ¡ ´ÙÀ½¿¡ 'L' À» ºÙÀÌ°í, ¼ö½ÄÀΰæ¿ì¿¡´Â ºÙÀÌÁö ¾Ê´Â´Ù. ¸ðµå´Â ¾Æ·¡ ¼¼ °¡Áö Áß Çϳª°¡ µÈ´Ù.
0: ÈÀÏÀÇ ½ÃÀÛºÎÅÍ »ó´ë À§Ä¡¸¦ °è»êÇÑ´Ù.
1: ÇöÀçÀÇ ÈÀÏ Æ÷ÀÎÅͺÎÅÍ »ó´ë À§Ä¡¸¦ °è»êÇÑ´Ù.
2: ÈÀÏÀÇ ³¡ºÎºÐºÎÅÍ »ó´ë À§Ä¡¸¦ °è»êÇÑ´Ù.
<¿¹Á¦1> fseek( )ÀÇ »ç¿ë ¿¹
fseek(fp,5L,0); : fp¸¦ ÈÀÏÀÇ ½ÃÀÛÀ§Ä¡¿¡¼ 5¹ÙÀÌÆ®¹ø°·Î À̵¿
fseek(fp,2L,1); : fp¸¦ ÇöÀçÀÇ À§Ä¡¿¡¼ 2¹ÙÀÌÆ® À̵¿
fseek(fp,-1L,2); : fp¸¦ ÈÀÏÀÇ ³¡¿¡¼ 1¹ÙÀÌÆ® ÀüÀÇ À§Ä¡·Î À̵¿
ÀÌ ¶§ ÇÔ¼öÀÇ ¼öÇàÀÌ ¼º°øÀûÀÌ¸é º¯°æµÈ ÈÀÏ Æ÷ÀÎÅÍ À§Ä¡°¡, ½ÇÆÐÇϸé -1ÀÌ ±¸ÇØÁø´Ù.
4. ÈÀÏ Ã³¸®¿¡ °üÇÑ ¿¹Á¦µé
<¿¹Á¦2> ÅؽºÆ® ÈÀÏÀ» Àоî ȸ鿡 Ãâ·ÂÇÏ´Â ÇÁ·Î±×·¥ ÀÛ¼º
<¸®½ºÆ®1> ÇÑ ±ÛÀÚ¾¿ Àоî ÇÑ ±ÛÀÚ¾¿ Ãâ·ÂÇÏ´Â ÇÁ·Î±×·¥
( fopen( )ÇÔ¼ö¾ÈÀÇ ÈÀϸíÀº ÇöÀç µð·ºÅ丮³»¿¡ ÀÖ¾î¾ß ÇÑ´Ù )
#include <stdio.h>
main( )
{
FILE *in; /* ÈÀÏ¿¡ ´ëÇÑ Æ÷ÀÎÅ͸¦ ¼±¾ð */
int ch;
if ((in=fopen("c:hello.c","r")) != NULL) {
/* in¿¡ null pointer°¡ µÇµ¹·Á ÁöÁö ¾Ê´Â´Ù¸é */
/* Áï, ÈÀÏÀÌ ¼º°øÀûÀ¸·Î °³¹æÀÌ µÇ¸é */
while ((ch=getc(in)) != EOF) /* ÈÀÏ¿¡¼ ÇÑ ¹®ÀÚ¸¦ Àоî */
/* chº¯¼ö¿¡ ÀúÀåÇÑ´Ù. ±×¸® */
/* °í ÈÀϳ¡(EOF)ÀÌ ¾Æ´Ï¸é,*/
putc(ch,stdout); /* Ç¥ÁØ Ãâ·Â(ȸé)¿¡ ch Ãâ·Â */
fclose(in);
}
else printf("file not found..\n");
}
<¸®½ºÆ®2> ÇÑ ¶óÀξ¿ Àоî ÇÑ ¶óÀξ¿ Ãâ·ÂÇÏ´Â ÇÁ·Î±×·¥
#include <stdio.h>
#define MAX 80
main( )
{
FILE *fpt;
char str[MAX];
fpt = fopen("c:hello.c","r");
while (fgets(str,MAX,fpt) != NULL)
puts(str);
}
<¿¹Á¦3> ´ÙÀ½ ÀڷḦ Å°º¸µå¿¡¼ ÀÔ·ÂÇÏ¿© ÈÀÏ·Î ÀÛ¼ºÇÏ´Â ÇÁ·Î±×·¥À»
ÀÛ¼ºÇÏ¿©¶ó.
---------------------------------------
ÀÌ ¸§ ÁÖ ¼Ò ÀüȹøÈ£
---------------------------------------
È« ±æµ¿ ¼¿ï½Ã Áß±¸ ½Å´çµ¿ 432-3453
ÀÌ ¼ø½Å °æ³² ÁøÇؽà 89-3455
±è À¯½Å ÀüºÏ ºÎ¾È±º 34-1123
x <- (ÀÚ·áÀÇ ³¡ Ç¥½Ã)
<¸®½ºÆ®3> 1:#include <stdio.h>
2:main( )
3:{
4: char name[8],addr[21],tel[9];
5: int n = 0;
6: FILE *fp;
7: fp = fopen("SAMPLE.DAT","a");
8: do {
9: printf("%2d. ",++n);
10: printf("¼º¸í : "); gets(name);
11: if (name[0] == 'X' || name[0] == 'x') break;
12: printf(" ÁÖ¼Ò : "); gets(addr);
13: printf(" ÀüÈ : "); gets(tel);
14: fputs(name,fp); fputc('\n',fp);
15: fputs(addr,fp); fputc('\n',fp);
16: fputs(tel,fp); fputc('\n',fp);
17: } while (1);
18: fclose(fp);
19:}
#ÈÀÏ¿¡ ÀÚ·á°¡ ¼ö·ÏµÇ´Â ÇüÅÂ: (ÈÀϳ»¿¡¼ '\nÀº 2¹ÙÀÌÆ®·Î Ãë±ÞµÈ´Ù)
+-------------------------------------------------------
|È« ±æµ¿\n¼¿ï½Ã Áß±¸ ½Å´çµ¿\n432-3453\nÀÌ ¼ø½Å\n...
+-------------------------------------------------------
À§ ÇÁ·Î±×·¥ÀÇ 14Çà - 16Çà¿¡¼ º¸¸é, fputs()ÇÔ¼ö¿¡¼´Â ¹®ÀÚ¸¦ ÈÀÏ¿¡ ¼ö·Ï ÇÒ¶§ °¢ ¹®ÀÚ¿ÀÇ ³¡¿¡ ¾Æ¹«·± Ç¥½Ãµµ ÇØÁÖÁö ¾ÊÀ¸¹Ç·Î ÀڷḦ ±¸ºÐÇϱâ À§Çؼ fputc()¸¦ ÀÌ¿ëÇØ ÀڷᱸºÐ ¹®ÀÚÀÇ ÇϳªÀÎ '\n'¹®ÀÚ¸¦ Ãß°¡ÇÏ¿´´Ù.
<¿¹Á¦4> À§¿¡¼ ±¸ÃàÇÑ ÈÀÏÀ» Àоî ȸ鿡 Ãâ·ÂÇÏ´Â ÇÁ·Î±×·¥ ÀÛ¼º
<¸®½ºÆ®4>
#include <stdio.h>
main()
{
char name[8],addr[21],tel[9];
int n=0;
FILE *fp;
fp = fopen("SAMPLE.DAT","r");
printf("--------------------------------------------\n");
printf("¹øÈ£ ÀÌ ¸§ ÁÖ ¼Ò ÀüȹøÈ£\n");
printf("--------------------------------------------\n");
do {
fgets(name,25,fp);
if (feof(fp)) break; /* ÈÀÏ ³¡ÀÌ °ËÃâµÇ¸é ÁßÁö */
fgets(addr,25,fp);
fgets(tel,25,fp);
printf("%2d %-11s%-19s%8s\n",++n,name,addr,tel);
} while (1);
printf("--------------------------------------------\n");
fclose(fp);
}
À§ ÇÁ·Î±×·¥À» ½ÇÇà½ÃÅ°¸é µ¥ÀÌÅÍ ÈÀϳ»ÀÇ '\n' ¶§¹®¿¡ Ãâ·Â°á°ú°¡ ÀÌ»óÇÏ°Ô ³ª¿Â´Ù. À§ÀÇ 12, 14, 15ÇàÀ» ¾Æ·¡¿Í °°ÀÌ °¢°¢ º¯°æ½ÃÅ°ÀÚ.
fgets(name,25,fp); name[strlen(name)-1]='\0';
fgets(addr,25,fp); addr[strlen(addr)-1]='\0';
fgets(tel,25,fp); tel[strlen(tel)-1]='\0';
5. ¼øÂ÷ÈÀÏ°ú ·£´ýÈÀÏ
ÈÀÏÀº ÀÚ·áÀÇ Æí¼º¹æ¹ý¿¡µû¶ó ¼øÂ÷ÈÀÏ(Sequential file)°ú ·£´ýÈÀÏ(Random file)·Î ±¸ºÐµÈ´Ù. ¼øÂ÷ÈÀÏÀº ¸ðµç ÀÚ·á°¡ ¹ß»ýÇÑ ¼ø¼´ë·Î ÀúÀåµÇ°í, Æí¼ºµÈ ÈÀÏÀº ¼øÂ÷ÀûÀ¸·Î ÀÐÇôÁø´Ù. ¶ÇÇÑ ÈÀÏ ³»ÀÇ Æ¯Á¤ÇÑ µ¥ÀÌÅ͸¦°»½ÅÇÒ ¶§¿¡´Â ÀÏ´Ü ÈÀÏÀ» ¸ðµÎ Àоîµé¿© ÇÊ¿äÇÑ ºÎºÐÀ» ¼öÁ¤ÇÏ°í, ´Ù½Ã óÀ½ºÎÅÍ Â÷·Ê´ë·Î µð½ºÅ©¿¡ ¼ö·ÏÇÏ´Â ÈÀÏ ÇüÅÂÀÌ´Ù. ÀÌ·¯ÇÑ ÈÀÏÀº ÀÚ·áÀÇ °¹¼ö°¡ ÀûÀº °æ¿ì³ª ¹®¼ ÈÀÏ, ÀÚ·áÀÇ º¯µ¿ÀÌ °ÅÀÇ ¾ø´Â °íÁ¤Çü ÀÚ·áÀÎ °æ¿ì¿¡ À¯¸®ÇÏ´Ù.
·£´ýÈÀÏÀº ÀڷḦ ÀÏÁ¤ÇÑ Å©±â(·¹ÄÚµå)¿¡ ¸ÂÃß¾î ÀúÀåÇÑ ´ÙÀ½, ·¹ÄÚµå ´ÜÀ§·Î ÀÔÃâ·ÂÇÏ´Â ÇüÅÂÀÇ ÈÀÏÀÌ´Ù. ÀÌ °ÍÀº ÈÀϳ»ÀÇ Æ¯Á¤ ÀڷḦ ¼öÁ¤ÇÏ´Â °æ¿ì ¿øÇÏ´Â ·¹Äڵ常 Àоîµé¿© ¼öÁ¤ÇÑ ´ÙÀ½ ´Ù½Ã ±× ÀÚ¸®¿¡ ±â·ÏÇÏ´Â °ÍÀÌ´Ù.( Á» ´õ °³¼±µÈ °æ¿ì´Â À妽º ÈÀÏÀ̶ó´Â »öÀÎ ÈÀÏÀ» ¸¸µé¾î µ¥ÀÌÅ͸¦ °Ë»öÇϱâ ÆíÇϵµ·Ï ÇÑ °ÍÀÌ ÀÖ´Ù )
C¿¡¼ ·£´ý ÈÀÏÀÇ Ã³¸®¸¦ À§ÇÑ ÇÔ¼ö·Î´Â fprintf(),fseek(),fread(),ftell() µîÀÌ ÀÖ´Ù.
<¿¹Á¦5> <¸®½ºÆ®3>ÀÇ ÇÁ·Î±×·¥À» ·£´ýÈÀÏ Çü½ÄÀ¸·Î ÀÛ¼ºÇ϶ó.
<¸®½ºÆ®5> #include <stdio.h>
main()
{
char name[8],addr[21],tel[9];
int n = 0;
FILE *fp;
fp = fopen("SAMPLE1.DAT","a+");
do {
printf("%2d. ¼º¸í:",++n); gets(name);
if (name[0]=='X' || name[0]=='x') break;
printf(" ÁÖ¼Ò:"); gets(addr);
printf(" ÀüÈ:"); gets(tel);
fprintf(fp,"%-11s%-19s%-8s\n",name,addr,tel);
} while (1);
fclose(fp);
}
#ÈÀÏ¿¡ ÀÚ·á°¡ ¼ö·ÏµÇ´Â ÇüÅÂ: (1·¹ÄÚµå´ç 40byte : \nÀº 2Byte·Î ó¸®)
+------------------------------------------------------------
|È« ±æµ¿ ¼¿ï½Ã Áß±¸ ½Å´çµ¿ 432-3453\nÀÌ ¼ø½Å .. ..
+------------------------------------------------------------
fprintf( )ÇÔ¼ö´Â µû·Î º¯¼ö¿¡ ´ëÇÑ '±¸ºÐÀ» ÇØÁÖÁö¾Ê°í' ¼½ÄÁ¦¾î ¹®ÀÚ¿´ë·Î ÈÀÏ¿¡ ½á ÁÖ´Â ÇÔ¼öÀÓÀ» ¸í½ÉÇ϶ó.
<¿¹Á¦6> ·£´ý ÈÀÏÀ» ȸ鿡 Ãâ·ÂÇÏ´Â ÇÁ·Î±×·¥
Á¤¼ö nÀ» ÀÔ·ÂÇÏ¿© n¹ø° ·¹Äڵ带 ÀÐ¾î¼ È¸é¿¡ Ç¥½ÃÇ϶ó.
<¸®½ºÆ®6> #include <stdio.h>
main( )
{
char name[12],addr[20],tel[9]; /* ¹è¿Å©±â¸¦ */
int n; /* \0ÀÌ Ãß°¡µÉ °ø°£±îÁö ÀûÀýÈ÷ È®º¸ÇÔ */
FILE *fp;
fp = fopen("SAMPLE1.DAT","a+");
do {
printf("¹øÈ£ÀÔ·Â:");
scanf("%d",&n);
if (n<1) break;
fseek(fp,40*(n-1),0);
fgets(name,12,fp);
fgets(addr,20,fp);
fgets(tel,9,fp);
printf("¼º¸í:%s\nÁÖ¼Ò:%s\nÀüȹøÈ£:%s\n",
name,addr,tel);
} while (1);
fclose(fp);
}
C¿¡¼´Â ÇöÀç ·¹Äڵ带 ÀоîµéÀÏ °æ¿ì ÇöÀçÀÇ ÈÀÏ Æ÷ÀÎÅÍ À§Ä¡¸¦ ÀÐÀ¸¸ç, ÈÀÏ Æ÷ÀÎÅÍ´Â ÀоîµéÀÎ ÀÚ·áÀÇ Å©±â¿¡ ¸ÂÃß¾î ÀÚµ¿À¸·Î Áõ°¡µÈ´Ù. ±×·¯³ª ´Ù¸¥ À§Ä¡¿¡ ÀÖ´Â ·¹Äڵ带 ÀоîµéÀÏ °æ¿ì¿¡´Â ÇÁ·Î±×·¡¸Ó°¡ Á÷Á¢ ÈÀÏÆ÷ÀÎÅ͸¦ À̵¿½ÃÄÑ¾ß ÇÑ´Ù. fseek( )ÇÔ¼ö·Î ÀоîµéÀÏ ÈÀÏ Æ÷ÀÎÅÍÀÇ À§Ä¡¸¦ÁöÁ¤ÇÒ ¶§´Â '(ÀÐÀ» ·¹ÄÚµå ¹øÈ£-1)*·¹ÄÚµå´ç ¹ÙÀÌÆ®¼ö'·Î ÁöÁ¤ÇÏ¿©¾ß ÇÑ´Ù.
À§ ÇÁ·Î±×·¥¿¡¼ fgets( )ÇÔ¼öÀÇ ±æÀ̸¦ ¾µ ¶§´Â ¹Ýµå½Ã ÀÐ¾î µéÀÏ·Á´Â ¹®ÀÚº¸´Ù 1 ¸¹°Ô ¼³Á¤ÇÏ¿©¾ß ÇÑ´Ù. ÀÚ¼¼ÇÑ »çÇ×Àº À§¿¡ ±â¼úÇÑ ÈÀÏ ÀÔÃâ·Â ÇÔ¼ö ºÎºÐÀ» È®ÀÎÇϱ⠹ٶõ´Ù.
fscanf( )ÇÔ¼ö¸¦ ÀÌ¿ëÇÏ¿© ÈÀÏÀ» ÀоîµéÀÏ °æ¿ì¿¡´Â fscanf( )ÀÇ Æ¯¼º»ó ÀÚ·á³»¿¡ Æ÷ÇÔµÈ °ø¹éÀ» ±× ÀÚ·áÀÇ ³¡À¸·Î ÆÇ´ÜÇÏ¿© ¿¹±âÄ¡ ¾ÊÀº °á°ú°¡ ¹ß»ýÇÒ ¼öµµ ÀÖÀ¸´Ï ÁÖÀÇÇØ¾ß ÇÑ´Ù.