¥°. C¾ð¾îÀÇ °³¿ä

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Ç× °è¼öÀÇ °ªÀ» ±¸ÇÏ¿© Ãâ·ÂÇÏ´Â ÇÁ·Î±× ·¥À» ÀÛ¼ºÇÏ¿©¶ó.

rm C = n over r = n! over { r!(n-r)! }


¢Ñ ½ÇÇà °á°ú ¢Ñ ½ÇÇà °á°ú

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( )ÀÇ Æ¯¼º»ó ÀÚ·á³»¿¡ Æ÷ÇÔµÈ °ø¹éÀ» ±× ÀÚ·áÀÇ ³¡À¸·Î ÆÇ´ÜÇÏ¿© ¿¹±âÄ¡ ¾ÊÀº °á°ú°¡ ¹ß»ýÇÒ ¼öµµ ÀÖÀ¸´Ï ÁÖÀÇÇØ¾ß ÇÑ´Ù.



back_1.JPG (13408 bytes)home_1.JPG (11522 bytes)