[C++]°­ÁÂ(3)<--¹®¹ýÀÇ ¾ö°Ý¼º



**********************************************
**********************************************
1-2 ¹®¹ýÀû ¾ö°Ý¼º

°¡. ÇÔ¼öÀÇ ¿øÇü ¹Ýµå½Ã Á¤ÀÇ

ÇÔ¼öÀÇ ¿øÇüÀ̶õ ÄÄÆÄÀÏ·¯¿¡°Ô ÇÔ¼öÀÇ ÇüÅ¿¡ °üÇÑ Á¤º¸¸¦ ¾Ë·ÁÁÖ´Â °ÍÀ̸ç
´ÙÀ½°ú °°Àº ÇüÅ·ΠC¿¡¼­ ÇÔ¼öÀÇ ¿øÇüÀ» ¹àÇôÁÖ¾ú¾ú´Ù.

* Ç¥ÁØ ÇÔ¼ö : ±× ÇÔ¼öÀÇ ¿øÇüÀÌ Æ÷ÇԵǾî ÀÖ´Â Çì´õ ÆÄÀÏÀ» includeÇÏ¿© ¿øÇü
À» ¼±¾ðÇÑ´Ù.
* »ç¿ëÀÚÁ¤ÀÇ ÇÔ¼ö : main ÆÄÀÏÀÇ ¼±µÎ¿¡ ÇÔ¼öÀÇ ¿øÇüÀ» Á÷Á¢ ¹àÇô ÁØ´Ù. ´ÙÁß
¸ðµâÀÇ ÇÁ·ÎÁ§Æ®ÀÎ °æ¿ì´Â º°µµÀÇ Çì´õ ÆÄÀÏÀ» ¸¸µé¾î µÎ°í Çì´õ ÆÄÀÏ¿¡ »ç¿ë
ÀÚÁ¤ÀÇ ÇÔ¼öÀÇ ¿øÇüÀ» ¸ðµÎ ¹àÈù ÈÄ main ÆÄÀÏ¿¡¼­´Â Çì´õ ÆÄÀÏÀ» includeÇϱâ
µµ ÇÑ´Ù.

C¸¦ Á¦´ë·Î °øºÎÇß´Ù¸é ÀÌ Á¤µµ´Â Àß ¾Ë°í ÀÖÀ» °ÍÀÌ´Ù. ±×·±µ¥ C¿¡¼­´Â ¿¹¿Ü
»çÇ×ÀÌ Á¸ÀçÇϴµ¥ ±× ¿¹¿Ü »çÇ×À̶õ ÇÔ¼öÀÇ ¿øÇüÀÌ ¹àÇôÁöÁö ¾ÊÀº °æ¿ì¿¡ µð
ÆúÆ® ¿øÇüÀ» Àû¿ëÇÑ´Ù´Â °ÍÀÌ´Ù. ÇÔ¼öÀÇ µðÆúÆ® ¿øÇüÀº ¸®ÅÏ°ªÀÌ intÇüÀ̸ç ÀÎ
¼ö¿¡ °üÇÑ ±ÔÁ¤Àº ¾ø´Ù. Áï ¼±¾ðµÇÁö ¾ÊÀº ÇÔ¼ö nodecl() ÇÔ¼ö°¡  È£ÃâµÇ¸é ÀÌ
ÇÔ¼öÀÇ ¸®ÅÏ°ªÀ» Á¤¼öÇüÀ¸·Î Ãë±ÞÇÏ°í Àμö´Â È£Ãâ½ÃÀÇ Àμö¸¦ »ç¿ëÇϵµ·Ï µÇ
¾î ÀÖ´Ù. ±×·¡¼­ ÀÌ·¯ÇÑ µðÆúÆ® ¿øÇü°ú ÀÏÄ¡ÇÏ´Â ¿øÇüÀ» °¡Áö´Â ÇÔ¼ö´Â ¿øÇüÀ»
¼±¾ðÇØÁÖÁö ¾Ê´õ¶óµµ Á¦´ë·Î ÄÄÆÄÀϵǾú´Ù.
printf, putch, scanf µîµî ¿ì¸®°¡ Ç×»ó ¾Ö¿ëÇß´ø ÀÌ·¯ÇÑ ÇÔ¼öµéÀÌ ¸ðµÎ ÀÌ
ºÎ·ù¿¡ ¼ÓÇÏ´Â ÇÔ¼öµéÀÌ´Ù. ´ëÇ¥ÀûÀ¸·Î printf¸¦ º¸¸é Ưº°È÷ ¸®ÅÏÇÒ °ªµµ ¾ø
´Â ÁÖÁ¦¿¡ intÇüÀ» ¸®ÅÏÇÏ°í Àִµ¥ ¾Æ¸¶µµ µðÆúÆ® ¿øÇü°ú ¸ÂÃß±â À§ÇÑ °ÍÀÌ
¾Æ´Ñ°¡ ÇÏ°í »ý°¢µÈ´Ù. ±×·¡¼­ C¿¡¼­ ÀÌ·± ÇÔ¼ö¸¦ ¾µ ¶§´Â Çì´õ ÆÄÀÏÀ» ½À°üÀû
À¸·Î »ý·«ÇÏ°ï ÇÑ´Ù.
ÇÏÁö¸¸ C++¿¡¼­´Â ±×·¸Áö ¸øÇÏ´Ù. µðÆúÆ® ¿øÇü µûÀ§¸¦ Àû¿ëÇØÁÖ´Â ÀÏÀº ¾øÀ¸
¸ç »ç¿ëÇÑ ¸ðµç ÇÔ¼ö¿¡ ´ëÇØ ¿øÇüÀ» ÀÏÀÏÀÌ ¹àÇôÁְųª Çì´õ ÆÄÀÏÀ» Æ÷ÇÔ½ÃÄÑ
¾ß ÇÑ´Ù. ¹®¹ýÀûÀ¸·Î Á»´õ ¾ö°ÝÇÑ ±¸Á¶¸¦ °¡ÁüÀ¸·Î½á ½Ç¼ö¸¦ ¹Ì¿¬¿¡ ¹æÁöÇϱâ
À§Çؼ­À̱⵵ ÇÏÁö¸¸ C++ÀÇ Æ¯¼ºÀÎ ´ÙÇü¼º(polymorphism)ÀÌ ½ÇÇöµÇ±â À§Çؼ­´Â
¸ðµç ÇÔ¼öÀÇ ¿øÇüÀÌ ¹Ýµå½Ã ÇÊ¿äÇϱ⠶§¹®ÀÌ´Ù. ´ÙÀ½ ¿¹Á¦¸¦ ½ÇÇà½ÃÄÑ º¸ÀÚ.

void main()
{
 printf( "prototype\n");
}

´õ ÀÌ»ó ¼³¸íÀ» ÇÒ ÇÊ¿ä°¡ ¾ø´Â °£´ÜÇÑ ÇÁ·Î±×·¥ÀÌ´Ù. ÀÌ ÇÁ·Î±×·¥À» test.c
¶ó´Â À̸§À» ½á¼­ µð½ºÅ©¿¡ º¸°ü ÈÄ ½ÇÇà½ÃÅ°¸é C ¹®¹ýÀ» µû¸£±â ¶§¹®¿¡ ¹«¸®
¾øÀÌ ½ÇÇàµÈ´Ù. ÇÏÁö¸¸ À̸§À» test.cpp¶ó´Â À̸§À¸·Î È®ÀåÀÚ¸¦ ¹Ù²Ù¾î ´Ù½Ã
ÀúÀåÇÏ°í ÄÄÆÄÀϽÃÅ°¸é C++ ¹®¹ýÀ» µû¸£¹Ç·Î ´ÙÀ½°ú °°Àº ¿¡·¯ ¸Þ½ÃÁö°¡ ³ª°í
ÄÄÆÄÀÏÀº ÁߴܵȴÙ.

Function 'printf' should have a prototype.

ÇÔ¼öÀÇ ¿øÇüÀÌ Á¤ÀǵÇÁö ¾Ê¾Æ ÄÄÆÄÀÏÇÒ ¼ö°¡ ¾ø´Ù´Â ¶æÀÌ´Ù. #include <stdio
.h>¸¦ Æ÷ÇÔ½ÃÄÑ ÁÖ¸é ¹®Á¦°¡ ÇØ°áµÈ´Ù. Á¤¸®ÇÏÀÚ¸é C++¿¡¼­´Â ¸ðµç ÇÔ¼öÀÇ ¿ø
ÇüÀ» ¹àÇôÁÖ¾î¾ß Çϸç Àý´ë·Î »ý·«ÇÒ ¼ö ¾ø´Ù´Â °ÍÀÌ´Ù.
À§¿Í °°Àº ¸Þ½ÃÁö¸¦ ¸¸³ª´Â Á·Á· ·¹ÆÛ·±½º³ª help¸¦ µÚÁ® ±× ÇÔ¼öÀÇ ¿øÇüÀÌ
¼±¾ðµÇ¾î ÀÖ´Â Çì´õ ÆÄÀÏÀ» Æ÷ÇÔ½ÃÄÑ ÁÖµµ·Ï ÇÏÀÚ.

³ª. ¸Å°³ º¯¼ö ŸÀÔ »ý·« ºÒ°¡´É

C¿¡¼­ ÇÔ¼öÀÇ ¿øÇüÀ» ¹àÇôÁÖ´Â ¹æ¹ý¿¡´Â 3°¡Áö ¹æ¹ýÀÌ ÀÖ´Ù.

1 ÇÔ¼öÀÇ ¸®ÅÏ°ª¸¸ ¸í½ÃÇÑ´Ù.
int func();
2 ÇÔ¼öÀÇ ¸®ÅÏ°ª°ú ÀμöÀÇ Å¸ÀÔ¸¸ ¸í½ÃÇÑ´Ù.
int func( int, char);
3 ÇÔ¼öÀÇ ¸®ÅÏ°ª°ú ÀμöÀÇ Å¸ÀÔ, ÀμöÀÇ À̸§±îÁö ¼±¾ðÇÑ´Ù.
int func( int a, char c)

ÀÌ ¼¼ °¡Áö ¹æ¹ýÀÌ ¸ðµÎ °¡´ÉÇϸç ÀÌÁß 2¹ø ¹æ¹ýÀÌ Á¦ÀÏ ±ÇÀåµÇ´Â ¹æ¹ýÀÌ´Ù.
±×·±µ¥ »ç¶÷ÀÌ ¿ø·¡ °£ÆíÇÑ °ÍÀ» ÁÁ¾ÆÇÏ´Â ¼Ó¼ºÀÌ ÀÖ¾î 1¹ø Çü½ÄÀ» ¾Ö¿ëÇÏ´Â
»ç¶÷µéÀÌ ¸¹ÀÌ Àִµ¥ ÀÌ Çü½ÄÀ» »ç¿ëÇÏ´õ¶óµµ C°¡ Àμö ŸÀÔÀ» üũÇØÁÖÁö ¾Ê
´Â´Ù´Â °Í»Ó º° ¹«¸®´Â ¾ø¾ú´Ù. ±×·¯³ª C++¿¡¼­´Â ÀÌ·¯ÇÑ °£ÆíÇÑ ¹æ¹ýÀÌ Çã¿ë
µÇÁö ¾ÊÀ¸¸ç ¹Ýµå½Ã ÀμöÀÇ µ¥ÀÌÅÍ Å¸ÀÔÀ» ¹àÇôÁÖ´Â 2¹ø Çü½ÄÀ̳ª 3¹ø Çü½ÄÀ»
»ç¿ëÇØ¾ß ÇÑ´Ù. ±×·¸Áö ¾ÊÀ¸¸é ´ÙÀ½°ú °°Àº ¿¡·¯°¡ ³­´Ù.

Extra parameter in call to func()

¿øÇü¿¡´Â Àμö°¡ ¾ø´Âµ¥ È£Ãâ½Ã¿¡ Àμö°¡ ¹ß°ßµÇ¾úÀ¸¹Ç·Î ¿¡·¯·Î °£ÁֵȴÙ.
ÀμöÀÇ µ¥ÀÌÅÍ Å¸ÀÔÀ» ¹Ýµå½Ã ¹àÇôÁÖ¾î¾ß ÇÏ´Â °Íµµ ¹®¹ýÀÌ ¾ö°ÝÇÑ ÂÊÀ¸·Î º¯
ÇÑ °ÍÀ̸ç À̸§Àº °°°í Àμö°¡ ´Ù¸¥ ÇÔ¼öµéÀ» ±¸º°Çس»±â À§ÇÑ ´ÙÇü¼ºÀ» À§ÇÑ
°ÍÀÌ´Ù. ´ÙÀ½ ¿¹Á¦¸¦ º¸ÀÚ.

#include <stdio.h>

int add();

void main()
{
 printf( "3+2=%d", add( 3, 2));
}

int add( int a, int b)
{
 return a + b;
}

ÀÌ ¿¹Á¦¸¦ C Çü½ÄÀ¸·Î(È®ÀåÀÚ°¡ C) ÄÄÆÄÀÏÇÏ¸é ¹®Á¦°¡ ¾øÁö¸¸ C++ Çü½ÄÀ¸·Î(
È®ÀåÀÚ°¡ cpp) ÄÄÆÄÀÏÇÏ¸é ¿¡·¯°¡ ¹ß»ýÇÑ´Ù. ÇÔ¼öÀÇ ¿øÇüÀº ¹Ýµå½Ã ¹àÇôÁÖµÇ 2
¹ø Çü½ÄÀ̳ª 3¹øÇü½Ä, ±× Áß¿¡µµ ƯÈ÷ 2¹ø Çü½ÄÀÌ ±ÇÀåÇÒ ¸¸ÇÏ´Ù.

**********************************************
**********************************************
1-3 È®ÀåµÈ Á¡

°¡. ÇÔ¼ö Áß°£¿¡¼­ º¯¼ö ¼±¾ð

C¿¡¼­ º¯¼ö´Â ¹Ýµå½Ã ÇÔ¼ö ¹Ù±ù¿¡¼­ ¼±¾ð(Àü¿ª º¯¼ö)µÇ°Å³ª ¶Ç´Â ÇÔ¼ö ³»ºÎÀÇ
¼±µÎ(Áö¿ªº¯¼ö)¿¡¼­ ¼±¾ðµÇ¾î¾ß ÇÑ´Ù. ±×·¯³ª C++¿¡¼­´Â ÇÔ¼ö ³»ºÎÀÇ Áß°£Âë¿¡
µµ º¯¼ö°¡ ¼±¾ðµÉ¼ö ÀÖ´Ù. ´ÙÀ½ ¿¹Á¦°¡ ±× ´ëÇ¥ÀûÀÎ ¿¹ÀÌ´Ù.

#include <stdio.h>

void main()
{
 int i;
 i = 3;
 int j;       // »õ·Î¿î º¯¼ö¸¦ ¼±¾ð
 j = 5;
 for ( i = 1; i < 10; i ++)
     printf( "%d\n", j);
}

5Çà¿¡¼­ i¿¡ 3À» ´ëÀÔÇÏ´Â ´ëÀÔ¹®ÀÌ ¿À°í ³­ ÈÄ¿¡µµ º¯¼ö j¸¦ ¼±¾ðÇÏ´Â °ÍÀÌ
°¡´ÉÇÏ´Ù. C¿¡¼­´Â ÇÔ¼ö È£Ãâ, ¿¬»ê½Ä µîÀÇ Äڵ带 »ý¼º½ÃÅ°´Â ¹®Àå ÀÌÈÄ¿¡ º¯
¼ö¸¦ ¼±¾ðÇÏ´Â °ÍÀº ºÒ°¡´ÉÇÑ ÀÏÀÌ´Ù. ±×·¯³ª ÀÌ ¹æ¹ýÀÌ ºñ·Ï °¡´ÉÀº ÇÏ´Ù°í
Çصµ º°·Î ±ÇÀåÇÒ ¸¸ÇÑ ¹æ¹ýÀº ¾Æ´Ï´Ù. º¯¼öÀÇ ¼±¾ðÀº °¡±ÞÀû ÇÑ °÷¿¡ ¸ð¾Æ¼­
ÇÏ´Â °ÍÀÌ ½Ã°¢»ó, È¿À²»ó ÈξÀ À¯¸®ÇÏ´Ù.
º¯¼öÀÇ ¼±¾ðÀÌ ÇÔ¼ö ³»ºÎÀÇ ÀÌ°÷ Àú°÷¿¡¼­ Áß±¸ ³­¹æÀ¸·Î ÀÌ·ç¾îÁø´Ù¸é ³ªÁß
¿¡ ¼öÁ¤ÇϱⰡ °ï¶õÇØÁö°í º¯¼ö°¡ ¼û¹Ù²ÀÁúÀ» ÇÏ´Â »çÅ°¡ ¹ß»ýÇÏ°Ô µÈ´Ù. ´Ù
À½°ú °°Àº ÇüÅ·Πº¯¼ö¸¦ ¼±¾ðÇؼ­ »ç¿ëÇÏ´Â °ÍÀº ²Ï Æí¸®ÇÑ ¹æ¹ýÀÌ¸ç ½Ç¿ëÀû
À¸·Îµµ ¹è¿öµÑ¸¸ÇÑ ¹æ¹ýÀÌ´Ù.

#include <stdio.h>

void main()
{
 int j;
 j = 588;
 for ( int i = 0; i < 10; i ++)  // ·çÇÁ ³»ºÎ¿¡¼­ º¯¼ö ¼±¾ð
     printf( "%d\n", i);
}

C++¿¡¼­´Â for, while µîÀÇ ¼øȯ¹® ¼±µÎ¿¡ º¯¼ö¸¦ ¼±¾ðÇÏ´Â °ÍÀÌ °¡´ÉÇÏ´Ù.
for ·çÇÁ ³»ºÎ¿¡¼­¸¸ Àá½Ã ¾²ÀÌ°í ¸» ·çÇÁ Á¦¾î º¯¼ö¶ó¸é ±»ÀÌ ÇÔ¼ö ¼±µÎ¿¡¼­
¸¸µé ÇÊ¿ä¾øÀÌ for ·çÇÁ¿¡¼­ ¸¸µé¾î ¾²´Â °ÍÀÌ ÁÁ´Ù.
ÀÌ·¸°Ô for ·çÇÁÀÇ ¼±µÎ¿¡¼­ ¼±¾ðµÈ º¯¼ö´Â for ·çÇÁ¿¡¼­¸¸ »ç¿ëµÇ¸ç for ·ç
ÇÁ°¡ Á¾·áµÇ´Â Áï½Ã ±â¾ïÀå¼Ò°¡ ¹Ý³³µÇ°í »ý¸íÀÌ ´ÙÇÏ´Â Áö¿ª º¯¼öÀÌ´Ù. C¿¡¼­
ÀÌ·¯ÇÑ ±¹ºÎÀûÀÎ º¯¼ö¸¦ ¼±¾ðÇÒ ¼ö ¾ø±â ¶§¹®¿¡ Á¦¾î º¯¼ö·Î Àá½Ã ¾²ÀÌ´Â º¯¼ö
¶óµµ ¹Ýµå½Ã ÇÔ¼öÀÇ ¼±µÎ¿¡ ¼±¾ðÇØÁÖ¾î¾ß ÇÏ´Â ºÒÆíÇÔÀÌ ÀÖ¾ú´Ù. Âü°í·Î ´ÙÀ½
°ú °°Àº º¯¼ö ¼±¾ðµµ °¡´ÉÇÏ´Ù.

#include <stdio.h>

void main()
{
 int i;
 for ( i = 1; i < 5; i ++)
 {
     int j;  // ¿©±â¼­ »õ·Î¿î º¯¼ö¸¦ ¼±¾ð
     j = i * 2;
     printf( "%d\n", j);
 }
}

ÇÔ¼öÀÇ ¼±µÎ°¡ ¾Æ´Ñ for ·çÇÁÀÇ ºí·° ½ÃÀÛ ºÎºÐ¿¡¼­ º¯¼ö°¡ ¼±¾ðµÇ¾î »ç¿ëµÈ
´Ù. C¸¦ ¿À·§µ¿¾È »ç¿ëÇÑ »ç¶÷µµ ÀÌ ¹æ¹ýÀº Àß ¸ð¸£°í Àִµ¥ C++¿¡¼­ »õ·Î Ãß
°¡µÈ °ÍÀÌ ¾Æ´Ï¶ó ¿ø·¡ C¿¡¼­ ÀÌ ¹æ¹ýÀÌ °¡´ÉÇÏ´Ù. C´Â ¸ðµç Á¾·ùÀÇ ºí·° ¼±µÎ
¿¡¼­({ }ÀÇ ¼±µÎ) º¯¼ö ¼±¾ðÀÌ °¡´ÉÇϵµ·Ï µÇ¾î ÀÖ´Ù.


À̾ °è¼ÓµË´Ï´Ù. ==============>>>>>>>


--------------------------------------------------------------------------------