11-3-´Ù.¹è¿­ Àμö Ç¥±â¹ý

¹è¿­¿¡ ´ëÇØ ¾î¶² ¹Ýº¹ÀûÀΠ󸮰¡ ÇÊ¿äÇÏ´Ù°í ÇØ º¸ÀÚ. ÀÏÁ¤ÇÑ Äڵ尡 °è¼ÓÀûÀ¸·Î ¹Ýº¹µÈ´Ù¸é ÇÔ¼ö·Î ºÐ¸®ÇØ¾ß Çϴµ¥ À̶§ ÀÛ¾÷ ´ë»óÀÌ µÇ´Â ¹è¿­À» ÇÔ¼ö·Î Àü´ÞÇÒ ÇÊ¿ä°¡ ÀÖÀ» °ÍÀÌ´Ù. ´ÙÀ½ ¿¹Á¦´Â ¹è¿­ÀÇ ³»¿ëÀ» È­¸éÀ¸·Î Ãâ·ÂÇÏ´Â ÇÔ¼ö OutArray¸¦ Á¤ÀÇÇÑ´Ù.

 

¿¹ Á¦ : ArrayPara1

#include <Turboc.h>

 

void OutArray(int ar[5])

{

     int i;

     for (i=0;i<5;i++) {

          printf("%d¹ø° = %d\n",i,ar[i]);

     }

}

 

void main(void)

{

     int ar[]={1,2,3,4,5};

 

     OutArray(ar);

}

 

main¿¡¼­ Å©±â 5ÀÇ Á¤¼öÇü ¹è¿­ arÀ» ¼±¾ðÇßÀ¸¸ç ÀÌ ¹è¿­À» OutArray·Î Àü´ÞÇÏ¿´´Ù. ½ÇÇàÇØ º¸¸é ar ¹è¿­ÀÇ ³»¿ëÀÌ Á¦´ë·Î Ãâ·ÂµÇ´Â °ÍÀ» È®ÀÎÇÒ ¼ö ÀÖ´Ù. ÀÌ ¿¹Á¦¿¡¼­ OutArrayÀÇ Àμö ¸ñ·Ï¿¡ int ar[5]¶ó°í µÇ¾î ÀÖÀ¸¹Ç·Î ÀÌ ÇÔ¼ö°¡ Å©±â 5ÀÇ Á¤¼öÇü ¹è¿­À» Àü´Þ¹Þ´Â °Íó·³ º¸ÀÌÁö¸¸ »ç½ÇÀº ±×·¸Áö ¾Ê´Ù.

C´Â ÇÔ¼öÀÇ Àμö·Î ¹è¿­À» Àü´ÞÇÏ´Â ¹æ¹ýÀº Á¦°øÇÏÁö ¾ÊÀ¸¸ç ¿À·ÎÁö Æ÷ÀÎÅ͸¸ Àü´ÞÇÒ ¼ö ÀÖ´Ù. OutArrayÀÇ Àμö ¸ñ·Ï¿¡ ÀÖ´Â int ar[5]´Â Á¤¼öÇü Æ÷ÀÎÅÍ arÀ» ÀǹÌÇÏ´Â °ÍÀÌÁö Á¤¼öÇü ¹è¿­À» ÀǹÌÇÏ´Â °ÍÀÌ ¾Æ´Ï´Ù. ´Ù¸¸ Á¤¼öÇü Æ÷ÀÎÅÍ Å¸ÀÔÀÇ Àμö¸¦ ¹è¿­Ã³·³ Ç¥±âÇÏ´Â °ÍÀ» Çã¿ëÇÒ »ÓÀÌ´Ù. ±×·¡¼­ ´ÙÀ½ ¼¼ ÇÔ¼ö Ç¥±â´Â ¿ÏÀüÈ÷ µ¿ÀÏÇÏ´Ù.

 

void OutArray(int ar[])

void OutArray(int *ar)

void OutArray(int ar[5])

 

int ar[]À̶ó°í Ç¥±âÇϵç int *arÀ̶ó°í Ç¥±âÇϵç ÄÄÆÄÀÏ·¯´Â µÑ ´Ù Á¤¼öÇü Æ÷ÀÎÅÍ·Î Çؼ®ÇÑ´Ù. ÇÔ¼öÀÇ Àμö ¸ñ·Ï¿¡¼­ int ar[]À̶ó´Â Ç¥±â´Â int *ar°ú ¿ÏÀüÈ÷ µ¿ÀÏÇÏ¸ç ¹è¿­ÀÌ ¾Æ´Ï¶ó Æ÷ÀÎÅÍÀÌ´Ù. Ç¥±â¸¸ °°À» »ÓÀÌÁö arÀº Ç×»ó Æ÷ÀÎÅÍÀ̸ç ÇÔ¼ö ³»¿¡¼­ *¿¬»êÀÚ·Î °¡¸®Å°´Â ´ë»óÀ» ÀÐÀ» ¼ö ÀÖ°í ++, -- ¿¬»êÀÚ·Î ¾Õ µÚ·Î À̵¿ÇÒ ¼öµµ ÀÖ´Ù. ¿¹Á¦¿¡¼­ ar[i]¸¦ *ar++·Î ¹Ù²ãµµ ¶È°°ÀÌ µ¿ÀÛÇϴµ¥ Áõ°¡ÇÒ ¼ö ÀÖ´Ù´Â °ÍÀº °ð »ó¼ö°¡ ¾Æ´Ï¶ó´Â ¾ê±â´Ù.

int ar[]ÀÇ [ ] °ýÈ£¾È¿¡ ¹è¿­ÀÇ Å©±â´Â »ý·«ÇÒ ¼öµµ ÀÖ°í »ó¼ö°ªÀ» ÀûÀ» ¼öµµ ÀÖµÇ ÄÄÆÄÀÏ·¯´Â ¿©±â¿¡ Ç¥±âµÈ »ó¼ö°ªÀº ¿ÏÀüÈ÷ ¹«½ÃÇÑ´Ù. ±×·¡¼­ ¹è¿­À» ³Ñ±â°í ½ÍÀ» ¶§ ½ÇÁ¦·Î´Â Æ÷ÀÎÅÍ°¡ ³Ñ¾î°¡´õ¶óµµ ±× ¹è¿­ÀÇ ÇüŸ¦ ±×´ë·Î ÀûÀ» ¼ö ÀÖ´Ù. ½ÉÁö¾î int ar[1000] °°Àº Å͹«´Ï¾ø´Â °ªÀ» ½áµµ ¾Æ¹«·± ¹®Á¦°¡ ¾ø´Ù. ¾îÂ÷ÇÇ Àü´ÞµÇ´Â °ÍÀº Æ÷ÀÎÅÍÀÌÁö ¹è¿­ÀÌ ¾Æ´Ï±â ¶§¹®¿¡ ÄÄÆÄÀÏ·¯´Â Å©±â µûÀ§¿¡ °ü½ÉÀ» °¡Áú¸®°¡ ¸¸¹«Çϸç ÇÔ¼ö´Â ½ÃÀÛ ¹øÁö¸¸À» Àü´Þ¹Þ±â ¶§¹®¿¡ ¹è¿­ Å©±â¸¦ ¾Ë ¹æ¹ýÀÌ ÀüÇô ¾ø´Ù.

¸¸¾à ÇÔ¼ö³»¿¡¼­ ¹è¿­ÀÇ Å©±â¸¦ ²À ¾Ë¾Æ¾ß ÇÑ´Ù¸é ¹è¿­ÀÇ ½ÃÀÛ ¹øÁö¿Í ÇÔ²² º°µµÀÇ Àμö·Î ¹è¿­ Å©±â¸¦ Àü´ÞÇØ¾ß ÇÑ´Ù. ¾Æ´Ï¸é ¹è¿­ÀÇ ¿ä¼Ò Áß 0À̳ª -1°°ÀÌ ³¡À» ³ªÅ¸³»´Â ¹Ì¸® ¾à¼ÓµÈ ƯÀÌ°ªÀ» ¾µ ¼öµµ Àִµ¥ ÁÖ·Î ¹®ÀÚÇü ¹è¿­ÀÌ ÀÌ ¹æ¹ýÀ» »ç¿ëÇÑ´Ù. ´ÙÀ½ ¿¹Á¦ÀÇ GetArSumÇÔ¼ö´Â ¹è¿­ÀÇ ½ÃÀÛ ¹øÁö¿Í Å©±â¸¦ Àü´ÞÇÏ¸é ¹è¿­ ¿ä¼ÒÀÇ ÃÑ ÇÕÀ» ±¸ÇÑ´Ù.

 

¿¹ Á¦ : ArrayPara2

#include <Turboc.h>

 

int GetArSum(int ar[], int size)

{

     int i,sum=0;

 

     for (i=0;i<size;i++) {

          sum += ar[i];

     }

     return sum;

}

 

void main(void)

{

     int ar[]={1,2,3,4,5};

     int ar2[]={6,7,8,9,10,11};

 

     printf("ÃÑÇÕ = %d\n",GetArSum(ar,sizeof(ar)/sizeof(ar[0])));

     printf("ÃÑÇÕ = %d\n",GetArSum(ar2,sizeof(ar2)/sizeof(ar2[0])));

}

 

ÀÌ ÇÔ¼ö°¡ ¹Þ¾ÆµéÀÌ´Â Àμö´Â Á¤¼öÇüÀÇ Æ÷ÀÎÅÍ ar°ú ¹è¿­ÀÇ Å©±â°ª sizeÀÌ´Ù. Á¤¼öÇü Æ÷ÀÎÅÍÀÇ ½ÃÀÛ°ú ±æÀ̸¦ ÁÖ¸é ½ÃÀÛ ¹øÁö ÀÌÈÄ ±æÀ̸¸Å­ÀÇ ¿ä¼Ò¿¡ ´ëÇÑ ÇÕÀ» ±¸ÇØ ¸®ÅÏÇÑ´Ù. ±×·¡¼­ ÀÌ ÇÔ¼ö´Â ÀÓÀÇ Å©±âÀÇ Á¤¼öÇü ¹è¿­¿¡ ´ëÇÑ Å©±â°ªÀ» °è»êÇÒ ¼ö ÀÖ´Ù. int ar[]À̶ó´Â Ç¥±â´Â °ð Á¤¼öÇü Æ÷ÀÎÅ͸¦ ÀǹÌÇϹǷΠGetArSum ÇÔ¼öÀÇ º»Ã¼¸¦ ´ÙÀ½°ú °°ÀÌ ÀÛ¼ºÇصµ µ¿ÀÏÇÏ´Ù.

 

int GetArSum(int *ar, int size)

 

°°Àº ¿ø¸®·Î ¾ÕÇ׿¡¼­ ÀÛ¼ºÇÑ GetTotalForWeek ÇÔ¼öÀÇ pa Àμöµµ ´ÙÀ½°ú °°ÀÌ µÎ °¡Áö ¹æ¹ýÀ¸·Î Ç¥±âÇÒ ¼ö ÀÖ´Ù.

 

int GetTotalForWeek(int (*pa)[7])

int GetTotalForWeek(int pa[][7])

 

ù ¹ø° ÷ÀÚ Å©±â´Â ºñ¿ö µÎ°í µÎ ¹ø° ÷ÀÚ¿¡¸¸ Å©±â¸¦ ¹àÈ÷¸é ÀÌ Àμö°¡ Å©±â 7ÀÇ ¹è¿­ Æ÷ÀÎÅͶó´Â °ÍÀ» ¾Ë ¼ö ÀÖ´Ù. int pa[3][7] µî°ú °°ÀÌ Ã¹ ¹ø° ÷ÀÚ ÀÚ¸®¿¡ Å©±â¸¦ ¹àÈú ¼öµµ Àִµ¥ ½á ºÁ¾ß ¹«½ÃµÈ´Ù. Æ÷ÀÎÅÍ Àμö¸¦ ¹è¿­ ÇüÅ·Πǥ±âÇÏ´Â ¿¹´Â main ÇÔ¼öÀÇ Àμö¿¡¼­µµ º¼ ¼ö Àִµ¥ argv Àμö¿¡ ´ëÇØ ´ÙÀ½ µÎ °¡Áö Ç¥±â°¡ ¸ðµÎ °¡´ÉÇÏ´Ù.

 

void main(int argc,char *argv[]);

void main(int argc,char **argv);

 

Á¤¸®ÇÏÀÚ¸é ÇÔ¼öÀÇ Àμö ¸ñ·Ï¿¡¼­ Æ÷ÀÎÅÍÇü Àμö¿¡ ´ëÇؼ­´Â int *ar Çü½Ä ¿Ü¿¡ int ar[]À̶ó´Â Ç¥±âµµ Çã¿ëµÇ¸ç µÎ Ç¥±â¹ýÀº ¿ÏÀüÈ÷ µ¿ÀÏÇÏ°Ô Çؼ®µÈ´Ù. ¾îµð±îÁö³ª ÇÔ¼öÀÇ Àμö ¸ñ·Ï¿¡¼­¸¸ ±×·² »ÓÀ̸ç ÀϹÝÀûÀÎ ¼±¾ð¹®¿¡¼­´Â int ar[]À̶ó´Â Ç¥±â·Î Æ÷ÀÎÅ͸¦ ¼±¾ðÇÒ ¼ö ¾ø´Ù. ±×·¸´Ù¸é C ¹®¹ýÀº ¿Ö ÀÌ·± µÎ °¡Áö Ç¥±â¹ýÀ» Çã¿ëÇÏ¸ç µÎ Ç¥±â¹ýÀÌ ¹®¹ý¿ÜÀûÀ¸·Î ¾î¶² Â÷ÀÌÁ¡ÀÌ ÀÖÀ»±î?

 

¡á int *ar : ÀÌ·¸°Ô Ç¥±âÇÏ´Â °ÍÀº ÀÌ Àμö°¡ Æ÷ÀÎÅͶó´Â °ÍÀ» °­Á¶ÇÑ´Ù. È£Ãâ¿ø¿¡¼­ &i³ª pi µîÀ» ³Ñ±æ ¶§´Â ÀÌ·± Ç¥±â¹ýÀ» ¾²´Â °ÍÀÌ ÁÁÀ¸¸ç ÇÔ¼ö¸¦ ¾²´Â »ç¶÷Àº ÀÌ Ç¥±â¸¦ º¸°í ÀÌ Àμö°¡ Á¤¼öÇü º¯¼öÀÇ ¹øÁö¸¦ Àü´Þ¹Þ´Â´Ù°í »ý°¢ÇÒ °ÍÀÌ´Ù.

¡á int ar[] : ÀÌ·¸°Ô Ç¥±âÇÏ´Â °ÍÀº ÀÌ Àμö°¡ ¹è¿­·ÎºÎÅÍ ¿Â Æ÷ÀÎÅͶó´Â °ÍÀ» °­Á¶ÇÑ´Ù. È£Ãâ¿ø¿¡¼­ arScore³ª arValue°°Àº ¹è¿­¸íÀ¸·ÎºÎÅÍ Æò°¡µÈ Æ÷ÀÎÅÍ »ó¼ö¸¦ ³Ñ±æ ¶§ ÀÌ·± Ç¥±â¹ýÀ» ¾²´Â °ÍÀÌ ÁÁÀ¸¸ç ÀÌ·¸°Ô Ç¥±âµÈ Àμö´Â ¹è¿­À̶ó´Â °ÍÀ» ½±°Ô ¾Ë ¼ö ÀÖ´Ù.

 

µÎ Ç¥±â¹ýÀº ¹®¹ýÀûÀ¸·Î´Â ¿ÏÀüÈ÷ µ¿ÀÏÇÏÁö¸¸ ÇÔ¼ö¸¦ Àд »ç¶÷¿¡°Ô ÀμöÀÇ Àǹ̿¡ ´ëÇÑ ¾à°£ÀÇ Á¤º¸¸¦ Á¦°øÇÒ ¼ö ÀÖ´Ù. ±×·¡¼­ C´Â ÀÌ·± µÎ °¡Áö Ç¥±â¹ýÀ» Á¦°øÇϴµ¥ ÀÌ·Î ÀÎÇØ C Ãʺ¸ÀÚµéÀº ¸¹Àº È¥µ·À» ´À³¢´Â °Í ¶ÇÇÑ »ç½ÇÀÌ´Ù. Â÷¶ó¸® ¹è¿­ÀÌ´õ¶óµµ ¹«Á¶°Ç *·Î¸¸ Ç¥±âÇϵµ·Ï ¹®¹ýÀ» Á¤¸®Çß´Ù¸é ÀÌ·± È¥¶õÀº ¾ø¾úÀ» °ÍÀÌ´Ù.

¸¸¾à ÀÌ·± °ÍÀ» ½Å°æ¾²°í ½ÍÁö ¾Ê´Ù¸é ¾ÕÀ¸·Î ¹è¿­À̵ç Á¤¼öÇü º¯¼öÀÇ ¹øÁöµç ÇÔ¼ö·Î Àü´ÞÇÒ ¶§´Â * Ç¥±â¹ý¸¸ »ç¿ëÇÏ¸é µÈ´Ù. ´Ü, ³²ÀÇ ¼Ò½º¸¦ º¼ ¶§´Â [ ] Ç¥±â¹ýÀ¸·Î Æ÷ÀÎÅ͸¦ ³Ñ±â´Â °æ¿ì°¡ Àֱ⠶§¹®¿¡ µÎ Ç¥±â¹ýÀÌ µ¿ÀÏÇÏ´Ù´Â °ÍÀº ²À ¾Ë¾Æ µÎ¾î¾ß ÇÑ´Ù.