* Á¦ 6Àå - ¹è¿­°ú Æ÷ÀÎÅÍ Áö³­ Àå±îÁöÀÇ ³»¿ëÀº ¿©·¯ºÐµéµµ ¹«¸®¾øÀÌ Àß µû¶ó¿ÔÀ» °ÍÀÌ´Ù. ÇÏÁö¸¸ 6ÀåºÎÅÍ´Â CÀÇ °¡Àå Áß¿äÇÏ°íµµ ÀÌÇØÇϱ⠾î·Á¿î Æ÷ÀÎÅÍ, ±¸Á¶Ã¼. °ø¿ëü, µîµîÀÇ ³­°üÀÌ ¿©·¯ºÐ ¾Õ¿¡ ¹öƼ°í ÀÖ´Ù. Æ÷ÀÎÅÍ¿¡ °üÇÑ ³»¿ëÀ¸·Î¸¸ Ã¥ ÇÑ ±ÇÀ» ½áÀç³¢´Â »ç¶÷ÀÌ ÀÖ´Â °ÍÀ¸·Î ºÁ¼­´Â Æ÷ÀÎÅͶó´Â °ÍÀº ³­ÇØÇÑ °ÍÀÓ¿¡ Ʋ¸²ÀÌ ¾ø´Ù. ÇÏÁö¸¸ ¿©±â¿¡ ¼ö·ÏµÇ´Â ¿¹Á¦µéÀ» Á÷Á¢ ¼öÇà½ÃÄÑ º¸°í, ¼³ ¸íÀ» Àß ÀÐ¾î º»´Ù¸é ÀÌÇØ°¡ ±×·¸°Ô ¾î·Á¿î °Í¸¸Àº ¾Æ´Ò °ÍÀÌ´Ù. 1. ¹è¿­(Array) ¹è¿­°ú Æ÷ÀÎÅÍ´Â ¼­·Î ¹ÐÁ¢ÇÏ°Ô °ü·ÃµÇ¾î ÀÖ´Ù. ±×·¡¼­ º¸Åë ÀÌ µÎ°¡Áö´Â µ¿½Ã¿¡ ³íÇÏ¿© Áø´Ù. ¸ÕÀú ¹è¿­¿¡ °üÇØ¼­ ¾Ë¾Æº¸ÀÚ. ¹è¿­Àº ÀÏ·ÃµÈ °ø°£¿¡ ÀúÀåµÈ ÀÚ·áÀÇ ÁýÇÕÀÌ´Ù. ¿©±â¼­ ÀÚ·á¶õ ¹è¿­ ¿ä¼Ò ¶ó°í Çϴµ¥ ÀÌ ¿ä¼ÒµéÀº ¾î¶² ±ÔÄ¢¿¡ ÀÇÇØ ÀúÀåµÈ´Ù. ±×¸®°í ÀüÀå¿¡¼­ ¹è¿î º¯¼öÀÇ ±â¾ï ºÎ·ùÀÇ Åë¿ë ¹üÀ§ÀÇ ±ÔÄ¢µµ ¹è¿­¿¡¼­ µµ ¶È°°ÀÌ Àû¿ëµÈ´Ù. (¹è¿­µµ º¯¼öÀÇ ÀÏÁ¾ÀÌ´Ù) int a[10], b[3][6], c, d; /* ¹è¿­¼±¾ðÀÇ º¸±â */ À§ÀÇ ¹è¿­ ¼±¾ð¿¡ ÀÇÇØ »ý¼ºµÇ´Â ¹è¿­ÀÇ ½Çü´Â ¾Æ·¡¿Í °°´Ù. 0 1 2 3 4 5 0 1 2 3 4 5 6 7 8 9 +-+-+-+-+-+-+ +-+-+-+-+-+-+-+-+-+-+ 0| | | | | | | ¹è¿­a | | | | | | | | | | | +-+-+-+-+-+-+ +-+-+-+-+-+-+-+-+-+-+ 1| | | | | | | +-+-+-+-+-+-+ 2| | | | | | | +-+-+-+-+-+-+ À§¿¡¼­ º¸µíÀÌ a[10]Àº a¶ó´Â À̸§À¸·Î intÇüÀÇ ÀڷḦ ³ÖÀ» ¼ö ÀÖ´Â ¹æ À» 10°³ È®º¸Ç϶ó´Â ¸í·ÉÀÌ´Ù. (1Â÷¿ø ¹è¿­ÀÌ´Ù) 2Â÷¿ø ¹è¿­ÀÇ °æ¿ì¿¡´Â b[3][6]°ú °°ÀÌ Çϴµ¥, b¶ó´Â À̸§ÀÇ int ¹è¿­À» 3Çà 6¿­·Î ¼±¾ðÇÏ´Â ¿¹ÀÌ´Ù. Áö³­ Àå¿¡¼­ Á¤Àûº¯¼ö¿Í µ¿Àû º¯¼ö¸¦ ¹è¿ü´Âµ¥ ¹è¿­¿¡¼­µµ Á¤Àû ¹è¿­°ú µ¿Àû ¹è¿­ÀÌ ÀÖ´Ù. Á¤Àû ¹è¿­Àº ¾Õ¿¡ static¸¦ ºÙÀ̸ç, 1ȸ¿¡ ÇÑÇÏ¿© ¸ðµç ¹è¿­¿ä¼Ò¿¡ ÃʱâÄ¡¸¦ ºÎ¿©ÇÒ ¼ö ÀÖ´Ù. ÃʱâÄ¡´Â {}·Î ¹­¾î¼­ Ç¥ÇöÇÑ´Ù. µ¿ Àû ¹è¿­Àº Àüü¸¦ ÃʱâÈ­ÇÒ ¼ö ¾ø°í ¸ðµç ¿ä¼Ò¸¦ Çϳª¾¿ ÁöÁ¤Çؼ­ ÃʱâÈ­ ÇØ¾ß ÇÑ´Ù. 1)static char a[6]={'a','b','c','d','e'}; /* ÀÌ ³×°¡Áö ÃʱâÈ­ */ 2)static char a[6]="abcde"; /* ´Â ¸ðµÎ ¾µ ¼öÀÖ´Ù*/ 3)static char a[]={'a','b','c','d','e'}; /* (¸ðµÎ °°´Ù) */ 4)static char a[]="abcde"; /* ´ëÁßÀû */ Á¤Àû ¹è¿­ÀÇ °æ¿ì ¹è¿­ÀÇ Å©±â¸¦ ¼±¾ðÇÏÁö ¾ÊÀ¸¸é ÄÄÆÄÀÏ·¯°¡ ÃʱâÄ¡ÀÇ °¹¼ö´ë·Î ¹æÀÇ °¹¼ö¸¦ °áÁ¤ÇØ ÁØ´Ù. ±×¸®°í ¹®ÀÚ ¹è¿­Àº ¹è¿­ÀÇ ³¡¿¡ ¹®ÀÚ ¿­ÀÇ ³¡ÀÓÀ» ¾Ë¸®´Â ÀÚµ¿ÀûÀ¸·Î '\0'ÀÌ Ãß°¡µÇ¹Ç·Î 1), 2)ÀÇ °æ¿ìó·³ ** ¹®ÀÚ¿­À» ¹è¿­³»¿¡ ÀúÀåÇÒ ¶§´Â ¹®ÀÚ¿­ÀÇ ±æÀ̺¸´Ù Àû¾îµµ 1°³ ÀÌ»ó Å©°Ô ¹è¿­ Å©±âÀ» È®º¸ÇÏ¿©¾ß ÇÑ´Ù. ** (À§¿¡¼­ ÁÖ·Î ¸¹ÀÌ ¾²ÀÌ´Â ¾ç½ÄÀº 4¹øÀÌ´Ù) ÀÌÂ÷¿ø Á¤Àû ¹è¿­¿¡ ÃʱâÈ­¸¦ ÇàÇÏ´Â ¿¹¸¦ º¸ÀÚ. static int b[2][5]={0,1,2,3,4},{5,6,7,8,9}; static int b[2][5]={{0,1,2,3,4},{5,6,7,8,9}}; À§ÀÇ µÎ°¡Áö Ç¥ÇöÀº ¼­·Î µ¿ÀÏÇÑ °ÍÀÌ´Ù. ¹è¿­¸íÀº ¹è¿­ÀÇ ¼±µÎ ¹øÁö¸¦ °¡¸®Å°´Â Æ÷ÀÎÅÍ »ó¼öÀÌ´Ù. ±×·¯¹Ç·Î º¯¼ö ó·³ °ªÀ» ´ëÀÔÇÒ ¼ö´Â ¾øÁö¸¸ ±× °ªÀ» ÂüÁ¶ÇÏ¿© ¹è¿­ÀÇ 1Çà, ȤÀº ¹è¿­ÀÇ ¿ä¼Ò ÀüºÎ¸¦ Àо ¼ö ÀÖ´Ù. ´ÙÀ½°ú °°Àº ¹è¿­À» »ý°¢ÇØ º¸ÀÚ. 1) static char c[3][7]={{"ABCDEF\0"},{"GHIJKL\0"},{"MNOPQR\0"}}; 2) static char c[3][7]={"ABCDEF\0",GHIJKL\0","MNOPQR\0"}; 3) static char c[3][7]={"ABCDEF",GHIJKL","MNOPQR"}; 4) static char c[][7]={"ABCDEF","GHIJKL",MNOPQR"}; /* ´ëÁßÀû */ À§ÀÇ ¼¼°¡Áö Ç¥ÇöÀº ¸ðµÎ µ¿ÀÏÇÑ Ç¥ÇöÀÌ´Ù. ( '\0'Àº ÀÚµ¿ÀûÀ¸·Î ºÙÀ¸¹Ç ·Î »ý·«ÀÌ °¡´ÉÇÏ´Ù ) 4¹øÀÇ °æ¿ìó·³ ¹è¿­ ÷ÀÚ¸¦ »ý·«ÇÒ ¼ö ÀÖÀ¸³ª ¸¶Áö ¸· ÷ÀÚ±îÁö´Â »ý·«ÇÒ ¼ö ¾ø´Ù. ±×·¯¸é ÀúÀå ÇüŸ¦ ±×¸²À¸·Î º¸ÀÚ. 0 1 2 3 4 5 6 +-+-+-+-+-+-+--+ 0 |A|B|C|D|E|F|\0| . ¹è¿­ c[3][7] ¿ä¼ÒÀÇ ÁöÁ¤°ú Ãâ·Â ÇüÅ +-+-+-+-+-+-+--+ ¹è¿­c 1 |G|H|I|J|K|L|\0| printf("%c",c[1][2]); => I Ãâ·Â +-+-+-+-+-+-+--+ printf("%s",c[1]; => GHIJKL Ãâ·Â 2 |M|N|O|P|Q|R|\0| * ¹®ÀÚ¿­ Ãâ·ÂÀ̹ǷΠ%s »ç¿ë +-+-+-+-+-+-+--+ ¹è¿­¿¡¼­ÀÇ Áß¿äÇÑ Á¡À» °£Ãß·Á º¸¸é ´ÙÀ½°ú °°´Ù. 1) Á¤Àû ¹è¿­ÀÌ ¾Æ´Ñ ÀÌ»ó ¹è¿­ Å©±âÀÇ ±â¾ï Àå¼Ò¸¸À» È®º¸ÇÒ »Ó °Å±â¿¡ ´ëÇÑ ÃʱâÈ­´Â ÇÏÁö ¾Ê´Â´Ù. 2) ¹è¿­¸í, ȤÀº ¼¼·ÎÃø(Çà)ÀÇ Ã·ÀÚ¸¸ ±â¼úÇÏ¿© ¹è¿­ Àüü, ȤÀº ±× ÇàÀÇ Àüü¸¦ ³ªÅ¸³¾ ¼ö ÀÖ´Ù. 3) ¹è¿­ Å©±â¸¦ ¼±¾ðÇÒ ¶§ º¯¼ö¸¦ »ç¿ëÇÏÁö ¸øÇÑ´Ù. Áï int arr[n];°ú °° Àº ¹®ÀåÀº ¿¡·¯ÀÌ´Ù. 4) ¹è¿­ ÷ÀÚ°¡ Çã¿ë ¹üÀ§¸¦ ¹þ¾î³µ´ÂÁöÀÇ ¿©ºÎ¸¦ Á¶»çÇÏÁö ¾Ê´Â´Ù. <¿¹Á¦1> ÃʱâÈ­ µÇÁö ¾ÊÀº ¹è¿­ÀÇ °ª(Á¤Àû ¹è¿­, ÀÚµ¿ ¹è¿­) <¸®½ºÆ®1> #include main() { int fuzzy[2]; /* ÀÚµ¿ ¹è¿­À̹ǷÎ, main()ÇÔ¼ö¸¦ ¹þ*/ /* ¾î ³ª¸é ÀÚµ¿ÀûÀ¸·Î ¼Ò¸êµÈ´Ù. */ static int wuzzy[2]; /* Á¤Àû ¹è¿­ */ printf("%d %d\n",fuzzy[1],wuzzy[1]); } À§ ÇÁ·Î±×·¥À» ½ÇÇà½Ã۸é ÀÚµ¿ ¹è¿­Àº ±â¾ï Àå¼Ò¸¸À» È®º¸ÇÒ »Ó ÃʱâÈ­ ÇÏÁö ¾ÊÀ¸¹Ç·Î ±× ±â¾ïÀå¼ÒÀÇ ¾²·¹±â °ªÀÌ Ãâ·ÂµÇ¸ç, Á¤Àû ¹è¿­Àº ÃʱâÈ­ ÇÏÁö ¾Ê¾ÒÀ» °æ¿ì ÀÚµ¿À¸·Î 0À¸·Î ä¿öÁö¹Ç·Î 0ÀÌ Ãâ·ÂµÉ °ÍÀÌ´Ù. <¿¹Á¦2> ¹è¿­ÀÇ ÃʱâÈ­ - Å©±âº¸´Ù ÃʱⰪÀÇ °¹¼ö°¡ ÀûÀº °æ¿ì <¸®½ºÆ®2> 1: int days[12]={31,28,31,30,31,30,31,31,30,31}; 2: 3: main() 4: { 5: int i; 6: extern int days[]; /* ¿ÜºÎ¹è¿­ ¼±¾ð */ 7: 8: for (i=0;i < 12;i++) 9: printf("%d¿ùÀº %dÀÏÀÌ´Ù.\n",i+1,days[i]); 10: } À§ ÇÁ·Î±×·¥¿¡¼­ days´Â ¿ÜºÎ ¹è¿­·Î ¼±¾ðµÇ°í ÃʱâÈ­µÇ¾ú´Ù. ¿ÜºÎ ¹è¿­ µµ Á¤Àû ¹è¿­°ú °°ÀÌ ÃʱâÈ­ÇÏÁö ¾ÊÀ¸¸é 0À¸·Î ÀÚµ¿ÀûÀ¸·Î ä¿öÁø´Ù. À§¿¡¼­´Â ÃʱâÈ­¸¦ Çϱä ÇÏ¿´À¸³ª, ¹è¿­¿ä¼Ò 12°³ Àüü¸¦ ÇÑ °ÍÀÌ ¾Æ´Ï¶ó 10°³¹Û¿£ ÃʱâÈ­ÇÏÁö ¾Ê¾Ò´Ù. ÇÏÁö¸¸ ÄÄÆÄÀÏ·¯´Â ÀÚµ¿ÀûÀ¸·Î ³²Àº ¿ä¼Ò¸¦ 0À¸·Î ä¿ö ¹ö¸°´Ù. Ãâ·Â °á°ú¸¦ º¸¸é ¾Ë ¼ö ÀÖÀ» °ÍÀÌ´Ù. ¹è¿­ ¼±¾ð½Ã ÷ÀÚ¸¦ »ý·«ÇÏ´Â °æ¿ì´Â ¾î¶»°Ô µÉ±î? 1ÇàÀ» int days[]={31,28,31,30,31,30,31,31,30,31}; ·Î ¹Ù²Ù¸é Ãâ·Â °á°ú´Â 10¿ù±îÁö¸¸ ³ª¿Ã °ÍÀÌ´Ù. ¿Ö³ÄÇϸé ÀÚµ¿ÀûÀ¸·Î ÄÄ ÆÄÀÏ·¯°¡ ¹è¿­ Å©±â¸¦ ÃʱâÈ­ °¹¼ö¿Í °°Àº 10À¸·Î °£ÁÖÇϱ⠶§¹®ÀÌ´Ù. ¹è ¿­ ÷ÀÚ¸¦ »ý·«ÇÒ °æ¿ì¿¡´Â ÃʱâÈ­½Ã ÁÖÀǰ¡ ÇÊ¿äÇÏ´Ù. ±×¸®°í int i, arr[10]; for (i=0;i<10;i++) { arr[i]=i+1; printf("arr[%d]=%d\n",i,i+1); } ¿Í °°ÀÌ ¹è¿­ ¼±¾ð°ú µ¿½Ã¿¡ ÃʱâÈ­ÇÏÁö ¾ÊÀ» ½Ã¿¡´Â Àý´ë·Î ¹è¿­ ÷ÀÚ¸¦ »ý·«ÇÏ¸é ¾ÈµÈ´Ù. À§ÀÇ ¿¹´Â 10°³ÀÇ ¹æ¿¡ 1¿¡¼­ 10±îÁö ´ëÀÔÇÏ´Â º¸±âÀÌ´Ù ( ** º¯¼ö³ª ¹è¿­Àº ¼±¾ð°ú µ¿½Ã¿¡ ÃʱâÈ­ (0À¸·Î¶óµµ) ÇÏ´Â ½À°üÀ» °¡Áö´Â°Ô ¾²·¹±â°ª ÇØ¼Ò¿¡ ÁÁ´Ù ** ) <¿¹Á¦3> 1 - 12¿ùÀÇ À̸§À» ¿µ¾î·Î ¹è¿­¿¡ ±â¾ï½ÃÄѵΰí 1-12 ÀÇ ¼öÄ¡¸¦ ÀÔ·ÂÇÏ¿© ±×¿¡ ´ëÀÀÇÏ´Â ¿ùÀÇ À̸§À» Ãâ·ÂÇÏ´Â ÇÁ·Î±×·¥ ÀÛ¼º. <¸®½ºÆ®3> 1: #include 2: 3: main() 4: { 5: int n; 6: static char arr[][10]={ 7: "January", "February","March","April", 8: "May","Jun","July","August","September", 9: "October","November","December" }; 10: do { 11: printf("¿øÇϽô ´ÞÀº? "); 12: scanf("%d",&n); 13: if (n == -999) break; 14: printf("%d´Â ¿µ¾î·Î %sÀÔ´Ï´Ù.\n",n,arr[n-1]); 15: } while (1); 16: } 6Çà: ¹®ÀÚ¿­ ÀÚü´Â 1Â÷¿ø ¹è¿­·Î °£ÁֵǹǷΠ´ç¿¬È÷ 2Â÷¿ø ¹è¿­·Î ¼±¾ð. =0;i 12 printf("\nÀÚµ¿»ý¼ºµÈ ¹è¿­:"); 13 for (i=0;i 14 bubble(x,MAX); 15 printf("\n°ÅǰÁ¤·ÄµÈ ¹è¿­: "); 16 for (i=0;i 17 } 18 19 void bubble(int x[], unsigned n) 20 { 21 register i,j; 22 int temp; 23 24 for (i=0;i 25 for (j=n-1;j>i;j--) { 26 if (x[j-1] <= x[j]) continue; 27 temp=x[j-1]; 28 x[j-1]=x[j]; 29 x[j]=temp; 30 } 31 } 1Çà: ³»Àå ÇÔ¼öÀÎ ramdomize(),random()ÇÔ¼ö´Â stdlib.h¿¡ ¼±¾ðµÇ¾î ÀÖ´Ù 2Çà: #defineÀº ¸ÅÅ©·Î·Î½á ÇÁ·Î±×·¥ ¾ÈÀÇ MAX¸¦ 20À¸·Î ġȯÇ϶ó´Â ÀÇ¹Ì ÀÌ´Ù. ¿¹¸¦ µé¾î ÀÌ·± ½ÄÀ¸·Î ¸ÅÅ©·Î¸¦ ÁöÁ¤ÇØ µÎ¸é x[]¹è¿­ÀÇ Å©±â ¸¦ º¯È­½Ãų Çʿ䰡 ÀÖÀ» ¶§ x[]¹è¿­ÀÌ »ç¿ëµÈ ¸ðµç ºÎºÐÀ» ã¾Æ°¡ ¼ö¸¦ º¯È­½ÃÄÑ¾ß ÇÑ´Ù. ÇÏÁö¸¸, ÀÌ °æ¿ì¿¡´Â #define MAX 20¿¡¼­ 20 À» ´Ù¸¥ ¼ö·Î¸¸ ¹Ù²ãÁÖ¸é µÈ´Ù.(¸ÅÅ©·Î¿¡ °üÇØ¼­´Â ¸¶Áö¸· Àå¿¡¼­ °ø ºÎÇÒ °ÍÀÌ´Ù) 4Çà: »ç¿ëÀÚ ÇÔ¼öÀÇ ¼±¾ð 10Çà: ³­¼ö ¹ß»ýÀÚ¸¦ ÃʱâÈ­ ÇÏ´Â ÇÔ¼ö 11Çà: random(n)Àº 0¿¡¼­ n-1±îÁöÀÇ Á¤¼ö ³­¼ö¸¦ ¹ß»ý½ÃÄÑ µ¹·ÁÁÖ´Â ÇÔ¼ö 14Çà: x´Â ¹è¿­ x[20]ÀÇ Ã¹¹øÂ° ¿ø¼Ò x[0]ÀÇ ¹øÁö¸¦ °¡¸®Å°´Â Æ÷ÀÎÅÍÀÌ´Ù 19Çà: void bubble(x,n); int x[]; ===> void bubble(int x[],unsigned n) unsigned n; °¡Àμö Çü¼±¾ðÀ» ÇÔ¼ö¸íÀÇ °¡Àμö ¸®½ºÆ®¿¡ À§¿Í °°ÀÌ Æ÷ÇÔ½Ãų ¼ö ÀÖ´Ù. 19-30Çà: bubble()ÇÔ¼ö´Â ¹öºí Á¤·ÄÀ» ÇÏ´Â ÇÔ¼öÀÌ´Ù(°¢Á¾ Á¤·ÄÀÇ ¿ø¸®´Â ÀڷᱸÁ¶ °ü·Ã ¼­ÀûÀ» Âü°íÇÏ±æ ¹Ù¶õ´Ù). ¹è¿­µµ º¯¼öó·³ ÇÔ¼ö³¢¸® ÁÖ°í¹ÞÀ» ¼ö ÀÖ´Ù. 14Çà°ú °°ÀÌ ¹è¿­¸í°ú ¹è¿­ ÀÇ Å©±â¸¦ ³Ñ°ÜÁÖ¸é, ÇÇÈ£ÃâÃø ÇÔ¼ö´Â ¹è¿­À» ó¸®ÇÒ ¼ö ÀÖ´Ù. ¹è¿­¸íÀº ¹è¿­À» °¡¸®Å°´Â ÁÖ¼Ò°ªÀ» °¡Áö°í ÀÖÀ¸¹Ç·Î ÂüÁ¶¿¡ ÀÇÇÑ Àü´Þ¿¡ ¼ÓÇÑ´Ù°í ÇÒ ¼ö ÀÖ´Ù. ±×·¯¹Ç·Î bubble()ÇÔ¼ö¿¡¼­´Â ¹è¿­ÀÇ ³»¿ëÀ» Á÷Á¢ ¹Ù²Ù´Â °Í ÀÌ °¡´ÉÇÑ °ÍÀÌ´Ù. ( 5Àå #1 Âü°í ) <¿¹Á¦5> ¸Å°³ º¯¼ö°¡ ¹è¿­ÀÎ ÇÔ¼ö - II <¸®½ºÆ®5> main() { char a[]="Konglish"; prnt(a); printf("a[]=%s",a); } prnt(char x[]) /* voidÇÔ¼ö => prnt(x) */ { /* char x[]; ·Î ½áµµ µÈ´Ù */ int k; for (k=0;k<9;k++) printf("a[%d]=%c\n",k,x[k]); x[0]='E'; } <¿¹Á¦6> 2Â÷¿ø ¹è¿­À» ÇÔ¼ö¿¡ ³Ñ°ÜÁÖ´Â ¿¹Á¦ <¸®½ºÆ®6> main() { static char a[][4]={ "Son", "Kim", "Han" }; prnt(a); } prnt(char x[][4]) { int i,j; for (i=0;i<3;i++) printf("%s\n",x[i]); } 2. Æ÷ ÀÎ ÅÍ (Pointer) - Æ÷ÀÎÅÍ´Â ÁÖ¼Ò°ª(¹øÁö)ÀÌ´Ù. Æ÷ÀÎÅÍ´Â ´Ù¸¥ º¯¼öÀÇ ÁÖ¼Ò¸¦ ±â¾ïÇÏ´Â º¯¼öÀÌ´Ù. Æ÷ÀÎÅÍ´Â Æ÷ÀÎÅÍ ¿¬»ê ÀÚ '*'¸¦ ÀÌ¿ëÇØ¼­ ¼±¾ðÇÑ´Ù. Æ÷ÀÎÅÍ´Â ¹øÁö¸¦ ±â¾ïÇÑ´Ù°í ÇßÀ¸¹Ç·Î ¿¬»ê ÀÚ '&'¿Í µ¿ÀÏÇÏ´Ù°í »ý°¢ÇÒÁö ¸ð¸£°ÚÀ¸³ª ½ÇÁ¦·Î´Â ÀüÇô ´Ù¸£´Ù.'&'´Â ¹ø Áö ÀÚü¸¦ ¸»ÇÏ´Â °ÍÀÌÁö¸¸ Æ÷ÀÎÅÍ º¯¼ö´Â ±× Æ÷ÀÎÅͰ¡ °¡¸®Å°´Â '¹øÁöÀÇ ³»¿ë'À» ¸»ÇÑ´Ù. ÀÌ¿Í °°ÀÌ Æ÷ÀÎÅ͸¦ ÀÌ¿ëÇÏ¿© ÀڷḦ ÁöÁ¤ÇÏ´Â °ÍÀ» ' ÀÚ ·áÀÇ °£Á¢ ÁöÁ¤'À̶ó°í ¸»ÇÑ´Ù. Æ÷ÀÎÅÍ º¯¼ö´Â ±× Æ÷ÀÎÅͰ¡ °¡¸®Å°´Â ½ÇüÀÇ Çü¿¡ ¸ÂÃß¾î ¼±¾ðÇØ¾ß ÇÑ´Ù. Á¤¼öÇüÀÇ ÀڷḦ °¡¸®Å°´Â Æ÷ÀÎÅͶó¸é Á¤¼öÇüÀ¸·Î ¼±¾ðµÇ¾î¾ß Çϸç, ÀåÂ÷ ½Ç¼öÇüÀÇ ÀڷḦ °¡¸®Å³ Æ÷ÀÎÅͶó¸é ½Ç¼öÇüÀ¸·Î ¼±¾ðÇØ¾ß ÇÑ´Ù. ¶ÇÇÑ ¹®ÀÚ ¿­À̳ª ´ÜÀÏ ¹®ÀÚ¸¦ °¡¸®Å³ Æ÷ÀÎÅÍ´Â ¹®ÀÚÇüÀ¸·Î ¼±¾ðÇØ¾ß ÇÑ´Ù. ¿¹¸¦ µé ¾î, int a=10, b=20, c=30, *p; p=&a; ´Â Á¤¼öÇü º¯¼ö¿Í Á¤¼öÇü Æ÷ÀÎÅÍ º¯¼ö¸¦ ¼±¾ðÇϰí ÃʱâÈ­ÇÑ °ÍÀÌ´Ù. ¿©±â ¼­ º¯¼ö a,b,c°¡ ¿¬¼ÓµÈ °ø°£¿¡ ÀúÀåµÇ¸ç ±× ¼±µÎ ¹øÁö°¡ 1000H¶ó°í °¡Á¤ ÇÒ °æ¿ì ÀúÀåÇüÅ´ ´ÙÀ½°ú °°´Ù. ÀÌ ¶§ &a´Â 1000H, &b´Â 1002H, &c´Â 1004H°¡ a b c µÈ´Ù. ¿©±â¼­ 'p=&a'¶ó°í ¸í·ÉÇÏ¸é Æ÷ÀÎÅÍ pÀÇ +-----+-----+-----+ ½Çü´Â 1000H°¡ µÇÁö¸¸ ¿ì¸®¿¡°Ô µÇµ¹·Á ÁÖ´Â | 10 | 20 | 30 | °ªÀº 1000H¿¡ ÀúÀåµÈ °ª Áï 10ÀÌ µÈ´Ù. +-----+-----+-----+ ±×¸®°í p += 1;¿¡ ÀÇÇØ pÀÌ °ªÀ» Çϳª Áõ°¡½Ã 1000H 1002H 1004H Ű¸é Æ÷ÀÎÅÍ pÀÇ °ªÀº ±× ÀÚ½ÅÀÌ °¡¸®Å°´Â ÀÚ ·áÀÇ Çü(int)¿¡ ¸ÂÃß¾î ÀÚµ¿À¸·Î 2°¡ Áõ°¡µÇ¾î 1002H°¡ µÇ°í ¿ì¸®¿¡°Ô 20À̶ó´Â °ªÀ» µÇµ¹·Á ÁØ´Ù. ÀÌ¿Í °°ÀÌ Æ÷ÀÎÅ͸¦ ÀÌ¿ëÇϸé ÀÓÀÇÀÇ ¸Þ¸ð¸® ¹øÁö¿¡ Á¢±ÙÇØ¼­ ±× °ªÀ» ²¨ ³¾ ¼ö ÀÖ°Ô µÈ´Ù. ¶ÇÇÑ ÇÁ·Î±×·¡¸Ó´Â Æ÷ÀÎÅÍÀÇ Çü¸¸ ÀûÀýÈ÷ ÁöÁ¤ÇÏ¸é ±»ÀÌ ¸Þ¸ð¸® ¹øÁö¸¦ ÀǽÄÇÏÁö ¾Ê¾Æµµ ¸Þ¸ð¸®³»ÀÇ ÀڷḦ Á¤È®È÷ ¿¢¼¼½ºÇÒ ¼ö ÀÖ ´Â °ÍÀÌ´Ù. Áï, Æ÷ÀÎÅÍÀÇ ÇüÀÌ Á¤¼öÇüÀÌ¸é ¿¬¼ÓµÈ 2ByteÀÌ °ªÀ» ²¨³»¿Í Á¤ ¼ö·Î ġȯÇÏ¿© µ¹·ÁÁÖ°í, Æ÷ÀÎÅͰ¡ ½Ç¼öÇüÀ¸·Î ¼±¾ðµÇ¾úÀ» ¶§´Â ÀÏ·ÃÀÇ ÀÚ ·áµéÀ» ½Ç¼öÇü¿¡ ¸ÂÃß¾î º¯È¯ÇÑ ´ÙÀ½ µ¹·ÁÁØ´Ù. (***ÇÏÁö¸¸ º¼·£µå CÀÇ °æ¿ì¿¡´Â º¯¼ö°¡ ¸Þ¸ð¸® °ø°£¿¡ ¿ª¼øÀ¸·Î Àú ÀåÀÌ µÈ´Ù. ¿©±â¼­´Â ¼³¸íÀÇ ÆíÀÇ»ó TC¸¦ ±âÁØÀ¸·Î ÇÏ¿´´Ù***) Æ÷ÀÎÅͰ¡ ¹®ÀÚÇüÀÏ °æ¿ì¿¡´Â ±× À§Ä¡ÀÇ ¹®ÀÚ¸¦ µÇµ¹·Á Áְųª '\0'À» ¸¸ ³¯ ¶§±îÁöÀÇ ¹®ÀÚ¿­À» µ¹·ÁÁØ´Ù. <¿¹Á¦7> Á¤¼öÇü º¯¼ö¿¡ °¢°¢ 10,20,30,40,50,60À» ±â¾ï½ÃŲ ÈÄ Æ÷ÀÎÅ͸¦ ÂüÁ¶ÇÏ¿© ±× °ªÀ» Ãâ·ÂÇÏ´Â ÇÁ·Î±×·¥ ÀÛ¼º. <¸®½ºÆ®7> main() { int a=10,b=20,c=30,d=40,e=50,f=60, *p; p=&a; printf("º¯¼ö(x) ÁÖ ¼Ò(&x)°ª(*p)Æ÷ÀÎÅÍ(p)\n"); printf(" %c %04X %d %4X\n",'a',&a,*p,p); p ++; /* º¼·£µå CÀÇ °æ¿ì´Â p --;·Î ±â¼úÇÑ´Ù */ printf(" %c %04X %d %4X\n",'b',&b,*p,p); p ++; printf(" %c %04X %d %4X\n",'c',&c,*p,p); p ++; printf(" %c %04X %d %4X\n",'d',&d,*p,p); p ++; printf(" %c %04X %d %4X\n",'e',&e,*p,p); p ++; printf(" %c %04X %d %4X\n",'f',&f,*p,p); } <½ÇÇà°á°ú> # TCÀÇ °æ¿ìÀÌ´Ù. ¿·ÀÇ Ç¥¿¡¼­ º¸µíÀÌ Æ÷ÀÎÅÍ ÀÚü +-------+---------+------+---------+ ÀÇ °ªÀº º¯¼öÀÇ ¹øÁö¿Í µ¿ÀÏÇϳª, |º¯¼ö(x)|ÁÖ ¼Ò(&x)|°ª(*p)|Æ÷ÀÎÅÍ(p)| Æ÷ÀÎÅ͸¦ ÂüÁ¶ÇÑ °ªÀº º¯¼öÀÇ ³»¿ë +-------+---------+------+---------+ °ú ÀÏÄ¡ÇÑ´Ù. ¿©±â¼­ ÁÖ¸ñÇÒ °ÍÀº | a | FFD2 | 10 | FFD2 | p++·Î Æ÷ÀÎÅ͸¦ 1¾¿ Áõ°¡½Ã۰í ÀÖ | b | FFD4 | 20 | FFD4 | Áö¸¸ Æ÷ÀÎÅÍ´Â ÀÚ½ÅÀÇ ÇüÀÎ intÇü | c | FFD6 | 30 | FFD6 | ¿¡ ¸ÂÃß¾î 2¾¿ Áõ°¡Çϰí ÀÖ´Ù´Â Á¡ | d | FFD8 | 40 | FFD8 | ÀÌ´Ù. | e | FFDA | 50 | FFDA | ±×·¸´Ù¸é, ¿©·¯ºÐµéÀÌ Á÷Á¢ º¯¼ö | f | FFDC | 60 | FFDC | µéÀ» ½Ç¼öÇüÀ¸·Î ¼±¾ðÇÏ¿©, ½Ç¼öÇü +-------+---------+------+---------+ Æ÷ÀÎÅÍ¿¡¼­´Â ¾î¶² Çö»óÀÌ ÀϾ # ÁÖ¼Ò´Â ½Ã½ºÅÛ¿¡ µû¶ó ´Ù¸£´Ù. ´ÂÁö ½ÇÇàÇØ º¸¶ó. ¹®ÀÚ¿­ Æ÷ÀÎÅÍ(¹®ÀÚ¿­À» °¡¸®Å°´Â Æ÷ÀÎÅÍ) - 'Åͺ¸ C Á¤º¹' ¿ì¼± ¿¹Á¦¸¦ º¸¸é¼­ ½ÃÀÛÇÏÀÚ. 1: main() 2: { 3: char array[20 + 1]; /* ¹®ÀÚ¿­ÀÇ ³¡¿¡ '\0'À» Ãß°¡Çϱâ À§ÇØ */ 4: char *ptr; /* È®º¸ÇÒ·Á´Â °ø°£¿¡ 1À» ´õÇÏ¿©¾ßÇÑ´Ù */ 5: 6: array="abcdefghijklmnopqrst"; /* ¹®ÀÚ¿­À» array¿¡ ÇÒ´ç */ 7: ptr=array; /* arrayÀÇ ÁÖ¼Ò°ªÀ» ptr¿¡ ´ëÀÔ */ 8: 9: printf("%s\n", array); 10: printf("%s\n", ptr); 11: printf("%p\n", array); 12: printf("%p\n", ptr); 13: printf("Str length(array) : %d\n", strlen(array)); 14: printf("Str length(ptr) : %d\n", strlen(ptr)); 15: printf("array[0] - %c\n", array[0]); 16: printf("array[9] - %c ptr[9] - %c\n", array[9], ptr[9]); 17: printf("End of ptr: %d\n", ptr[strlen(ptr)]); 18: printf("*(ptr + 9)=%c\n", *(ptr + 9)); 19: printf("================================\n"); 20: getch(); 21: } (½ÇÇà°á°ú) abcdefghijklmnopqrst abcdefghijklmnopqrst 2000 <--- ½Ã½ºÅÛ¿¡ µû¶ó ´Ù¸£´Ù. 2000 (µÎ °³ÀÇ °ªÀÌ °°´Ù´Â Á¡¿¡ ÁÖ¸ñÇ϶ó) Str length(array) : 20 Str length(ptr) : 20 array[0] - a array[9] - j ptr[9] - j End of ptr: 0 *(ptr + 9)=j ================================ ¹®ÀÚ ¹è¿­ array(»ó¼ö) 6Çà ¼öÇà : +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+--+ |a|b|c|d|e|f|g|h|i|j|k|l|m|n|o|p|q|r|s|t|\0| +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+--+ 7Çà ¼öÇà : | Æ÷ÀÎÅÍ ptr -+ (º¯¼ö) 6ÇàÀ» ¼öÇàÇÏ¸é ¹è¿­ array´Â ³»ºÎÀûÀ¸·Î´Â ¹®ÀÚ¿­"abcd.."°¡ ÀúÀåµÈ °ø °£ÀÇ Ã¹Â° ¿µ¿ªÀÇ ÁÖ¼Ò°ª(2000)À» °¡Áö°Ô µÈ´Ù. ¹è¿­¸íÀº ±× ¹è¿­ÀÇ ½ÃÀÛÁ¡ÀÇ ÁÖ¼Ò°ªÀ» °¡Áö´Â <Æ÷ÀÎÅÍ »ó¼ö>ÀÌ´Ù. 7Çà¿¡¼­ ¹®Àڹ迭ÀÇ ½ÃÀÛ ÁÖ¼Ò°ª(array)À» Æ÷ÀÎÅÍ <º¯¼ö>ptr¿¡ ´ëÀÔÇÏ¿´À½ À¸·Î ptrÀÇ °ªµµ array¿Í °°Àº ÁÖ¼Ò°ª(2000)À» °¡Áö°Ô µÈ´Ù. ÇÏÁö¸¸ °³³ä ÀûÀ¸·Î´Â ¶ó°í ÇÑ´Ù. 9Çà, 10Çà ¼öÇà: printfÇÔ¼öÀÇ %s¼­½ÄÀº Àμö¸¦ ¹®ÀÚ¿­ Æ÷ÀÎÅÍ·Î ÀνÄÇÏ°í ±× Æ÷ÀÎÅͰ¡ °¡ ¸®Å°´Â ¹øÁöºÎÅÍ ³Î Á¾·á¹®ÀÚ(\0)±îÁöÀÇ ¹®ÀÚµéÀ» Ãâ·ÂÇÏ´Â ±â´ÉÀ» °¡Áø´Ù ±×·¯¹Ç·Î, array¿Í ptr°¡ °¡¸®Å°´Â ÁÖ¼Ò¸¦ ã¾Æ°¡ ±× °÷¿¡ ÀÖ´Â ¹®ÀÚ(a)·Î ºÎÅÍ \0¹®ÀÚ±îÁö Ãâ·ÂÀ» ÇÏ´Â °ÍÀÌ´Ù. 11Çà, 12Çà ¼öÇà: %p¼­½ÄÀº Àμö°¡ °¡Áö´Â ÁÖ¼Ò°ªÀ» Ãâ·ÂÇ϶ó´Â ¼­½ÄÀÌ´Ù. À§¿¡¼­ array¿Í ptrÀ» °°Àº ÁÖ¼Ò°ªÀ» °¡Áö´Â °ÍÀ» ¾Ë ¼ö ÀÖ´Ù. 13Çà, 14Çà ¼öÇà: strlenÇÔ¼ö´Â Æ÷ÀÎÅ͸¦ Àü´Þ¹Þ¾Æ ±× Æ÷ÀÎÅͰ¡ °¡¸®Å°´Â ¹øÁöºÎÅÍ ³Î Á¾·á ¹®ÀÚ Á÷Àü±îÁöÀÇ ¹®ÀÚÀÇ °¹¼ö¸¦ ¼¼¾î¼­ Á¤¼ö°ªÀ¸·Î ¸®ÅÏÇÑ´Ù. À§¿¡¼­ arra y¿Í ptrÀÌ °°Àº ¹®ÀÚ¿­ ¿µ¿ªÀ» °¡¸®Å´À» ¾Ë ¼ö ÀÖ´Ù. Æ÷ÀÎÅÍÀÇ ÀÔÀå¿¡¼­ º¸¸é ¹®ÀÚ¿­°ú ¹®ÀÚ ¹è¿­À» ÀüÇô ±¸ºÐÇÒ ¼ö ¾ø°í, ¿ÏÀüÈ÷ µ¿µîÇÏ°Ô Ãë±ÞµÈ ´Ù. ¹®ÀÚ ¹è¿­À» ¹®ÀÚ¿­·Î °£ÁÖÇÏ¸é ¹®ÀÚ ¹è¿­ÀÌ °ð ¹®ÀÚ ¹è¿­ÀÌ µÇ´Â °Í ÀÌ´Ù. 15, 16, 17Çà ¼öÇà: char array[21]="...."¹è¿­¿¡¼­ ÀϹÝÀûÀ¸·Î array[n]Àº n¹øÂ°(óÀ½ÀÌ 0 ¹øÂ°) ¹®ÀÚ¸¦ ³ªÅ¸³»´Â °ÍÀ» Àß ¾Ë°í ÀÖÀ» °ÍÀÌ´Ù. ±×·¯¸é, ptr[n]À̶õ °Í Àº ¹«¾ùÀ» ÀǹÌÇÒ±î? °ð, <¹®ÀÚ¿­> Æ÷ÀÎÅÍptrÀÌ °¡¸®Å°´Â ¹øÁöºÎÅÍ n¹øÂ° ¹®ÀÚ¿­ ¿ä¼Ò¸¦ °¡Áø´Ù. À§¿¡¼­ º¸µíÀÌ ¹è¿­°ú Æ÷ÀÎÅÍ´Â ¸Å¿ì ¹ÐÁ¢ÇÑ °ü°è¸¦ °¡ÁüÀ» ¾Ë ¼ö°¡ ÀÖ´Ù 17Çà¿¡¼­ strlen(ps)ÀÇ °á°ú´Â 20ÀÌ´Ù. ±×·¯¹Ç·Î ptr[strlen[ptr])Àº ptr [20]°ú µ¿ÀÏÇÏ´Ù. À§ÀÇ ±×¸²¿¡¼­ ±× À§Ä¡¿¡´Â ³Î Á¾·á¹®ÀÚ \0ÀÌ ÀÖÀ¸¹Ç·Î È­¸é¿¡´Â 0ÀÌ Ãâ·ÂµÈ´Ù. 18Çà ¼öÇà: px + 1; ÀÇ Àǹ̴ °ú¿¬ ¹«¾ùÀϱî? À̰ÍÀº px°¡ °¡¸®Å°´Â ¹è¿­ ¿ä¼ÒÀÇ ¹Ù·Î ´ÙÀ½ ¹è¿­¿ä¼Ò¸¦ °¡¸®Å²´Ù (¹è¿­¿ä¼Ò°¡ ÀÖ´Â °÷ÀÇ ¹øÁö°ªÀ» °¡Áø´Ù) ¿©±â¼­ ÁÖÀÇ ÇÒ Á¡Àº px ¹Ù·Î ´ÙÀ½ ¹ÙÀÌÆ®ÀÇ ¹øÁö¸¦ °¡¸®Å°´Â °ÍÀÌ ¾Æ´Ô ¿¡ À¯ÀÇÇØ¾ß ÇÑ´Ù. px+1ÀÌ ¹Ù·Î ´ÙÀ½ ¹ÙÀÌÆ®ÀÇ ¹øÁö¸¦ °¡¸®Å°°Ô µÇ´Â °æ¿ì ´Â px°¡ ¹®ÀÚ¿­ Æ÷ÀÎÅÍÀÏ ¶§»ÓÀÌ´Ù.(°¢ ¿ä¼Ò°¡ 1byteÅ©±âÀÇ ¹®ÀÚÀ̹ǷÎ) ¸¸ÀÏ px°¡ intÇü Æ÷ÀÎÅͶó¸é px + 1Àº 2¹ÙÀÌÆ® ´ÙÀ½ÀÇ ¹øÁö¸¦ °¡Áø´Ù. ÀÌ·¸°Ô C¿¡¼­´Â Æ÷ÀÎÅͰ¡ ¹«½¼ ÇüÀÓ¿¡ »ó°ü¾øÀÌ ÀÚµ¿ÀûÀ¸·Î ¹øÁö¸¦ Áõ°¡ ½ÃÄÑÁÜ¿¡ À¯ÀÇÇØ¾ß ÇÑ´Ù. ±×·³, ptr+9ÀÇ Àǹ̴ ¹«¾ùÀϱî? ptrÀÌ °¡¸®Å°´Â ¹øÁö(a°¡ ÀúÀåµÇ¾î ÀÖ´Â °÷ÀÇ ¹øÁö)·ÎºÎÅÍ 9¹øÂ° ¿ä¼Ò°¡ ÀúÀåµÇ¾î ÀÖ´Â °÷(j)ÀÇ ¹øÁö¸¦ °¡¸®Å²´Ù. ±×·±µ¥ À§¿¡¼­ *(ptr + 9)¶ó°í Çß´Ù. À̰ÍÀÇ Àǹ̴ (ptr + 9)°¡ °¡¸®Å° ´Â °÷¿¡ ÀÖ´Â ³»¿ëÀ» ³ªÅ¸³»¶ó´Â ÀǹÌÀÌ´Ù. Ãâ·Â°á°ú¸¦ µÎ°í º¸¾ÒÀ» ¶§ +-------------------------------------------------+ | array[i]¿Í *(ptr + i)´Â ¿ÏÀüÈ÷ µ¿µîÇÑ ¼ö½ÄÀÌ´Ù. | +-------------------------------------------------+ ¶ó´Â »ç½ÇÀ» À¯ÃßÇÒ ¼ö ÀÖ´Ù. ¾Æ¿¹, À§ ¹®ÀåÀ» ¾Ï±âÇØ ¹ö¸®ÀÚ. +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+--+ |a|b|c|d|e|f|g|h|i|j|k|l|m|n|o|p|q|r|s|t|\0| +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+--+ | | | ptr+0 ptr+2 .... ptr+9 ==> ÀÌ °¢°¢ÀÇ ³»¿ëÀº ÁÖ¼Ò°ª *(ptr+0) , ..... *(ptr+9) ==> ÀÌ °¢°¢ÀÇ ³»¿ëÀº ¹®ÀÚ &array[9] == &(*(ptr+9)) == ptr+9 array[9] == *(ptr+9) == 'j' 3. Æ÷ÀÎÅÍ¿Í ¹è¿­ Æ÷ÀÎÅÍ´Â ¹è¿­°ú ¾ÆÁÖ ¹ÐÁ¢ÇÑ °ü°è¸¦ °¡Áø´Ù. ½ÇÁ¦·Î ¹è¿­¸íÀº ¹è¿­ÀÇ ¼± µÎ ¹øÁö¸¦ °¡¸®Å°´Â 'Æ÷ÀÎÅÍ »ó¼ö'ÀÌ´Ù. ¹è¿­Àº ±× ³»¿ëÀÌ ¹è¿­ ¿µ¿ª¿¡ Àú ÀåµÇ³ª ¹®ÀÚ¿­À» Æ÷ÀÎÅÍ º¯¼ö·Î ÁöÁ¤ÇÒ °æ¿ì¿¡´Â ±× ³»¿ëÀÌ ´Ü¼ø º¯¼ö ¿µ ¿ª¿¡ ÀúÀåµÈ´Ù. ¶Ç ¹è¿­Àº ÷ÀÚÀÇ °ªÀ» °è»êÇØ¾ß ÇÏÁö¸¸ Æ÷ÀÎÅÍ´Â ¿¬¼ÓµÈ ¸Þ¸ð¸® ¿µ¿ªÀÇ '³»¿ë'À» ²¨³»¿À¹Ç·Î 󸮼ӵµµµ ºü¸£´Ù. ¸¸ÀÏ arr[]°¡ ¹è¿­À̶ó¸é, arr == &arr[0] (¹è¿­¸íÀº ¹è¿­ÀÇ Ã¹¹øÂ° ¿ä¼ÒÀÇ ¹øÁö¸¦ ³ªÅ¸³»´Â) ( Æ÷ÀÎÅÍ »ó¼öÀÌ´Ù ) <¿¹Á¦8> Æ÷ÀÎÅÍ¿Í ¹è¿­ <¸®½ºÆ®8> main() { int date[4], *pti, i; float bill[4], *ptf; pti=date; ptf=bill; for (i=0;i<4;i++) printf("Pointer+%d: %10x %10x\n",i,pti+i,ptf+i); } À§ ÇÁ·Î±×·¥ÀÇ ½ÇÇà °á°ú¿¡¼­ ¹øÁöÀÇ Áõ°¡·®À» ÁÖ¸ñÇ϶ó! À§ÀÇ ¿¹Á¦´Â ¹è¿­°ú Æ÷ÀÎÅÍÀÇ ¹ÐÁ¢ÇÑ °ü°è¸¦ º¸¿©ÁØ´Ù. À̰ÍÀº ¹è¿­ÀÇ °¢ ¿ø¼Ò¸¦ ±¸º°ÇÏ°í ±× ¿ø¼ÒÀÇ °ªÀ» ȹµæÇϴµ¥ Æ÷ÀÎÅ͸¦ »ç¿ëÇÒ ¼ö ÀÖÀ½À» ÀǹÌÇÑ´Ù. ½ÇÁ¦·Î ÄÄÆÄÀÏ·¯´Â ¹è¿­ Ç¥±â¸¦ Æ÷ÀÎÅÍ·Î º¯È¯½ÃÄÑ Ã³¸®ÇÑ´Ù. *(date+2)¿Í *date + 2´Â ¾ö¿¬È÷ ´Ù¸¥ °ÍÀÌ´Ù. Æ÷ÀÎÅÍ ¿¬»êÀÚ'*'´Â +º¸´Ù ³ôÀº ¿ì¼±¼øÀ§¸¦ °¡Áö°í ÀÖÀ¸¹Ç·Î ÈÄÀÚ´Â (*date)+2¸¦ ÀǹÌÇÑ´Ù. *(date + 2) => dateÀÇ ¼¼¹øÂ° ¿ø¼ÒÀÇ °ª *date + 2 => ù¹øÂ° ¿ø¼ÒÀÇ °ª¿¡ 2¸¦ ´õÇÑ °ª ¹è¿­°ú Æ÷ÀÎÅÍÀÇ ÀÌ·¯ÇÑ °ü·Ã¼º ¶§¹®¿¡ ÇÁ·Î±×·¥ ÀÛ¼º½Ã ¾Æ¹«°ÍÀ̳ª ¼±Åà ÇÏ¿© »ç¿ëÇÒ ¼ö ÀÖ´Ù. ÇÔ¼ö°¡ ¹è¿­À» ÀÎÀÚ·Î ³Ñ°Ü¹Þ´Â °æ¿ì°¡ ±× ÀÏ·ÊÀÌ´Ù . ( <¿¹Á¦5> , <¿¹Á¦6> , <¿¹Á¦7> ÂüÁ¶ ) ±×·³, ¾Æ·¡ÀÇ µÎ °¡Áö ºñ±³¸¦ º¸ÀÚ. *** ¹è¿­À» »ç¿ëÇÑ Æò±Õ°ªÀ» ±¸ÇÏ´Â ÇÔ¼ö int mean(array,n) int array[], n; { int i; long sum; /*¸ðµç ¿ä¼ÒÀÇ ÇÕÀÌ int¹üÀ§¸¦ ³ÑÀ»Áöµµ ¸ð¸£¹Ç·Î */ /* longÇüÀ¸·Î ¼±¾ð */ if (n>0) { for (i=0,sum=0;i sum += array[i]; /*¹è¿­¿ä¼Ò ¸ðµÎ¸¦ ´õÇÑ´Ù*/ return((int)(sum/n)); /*Æò±Õ°ªÀ» intÇüÀ¸·Î º¯È¯ÇÏ¿© ³Ñ°ÜÁÜ*/ } else { printf("No array.\n"); return(0); } } *** Æ÷ÀÎÅ͸¦ »ç¿ëÇÑ ¹è¿­ÀÇ Æò±Õ°ªÀ» ±¸ÇÏ´Â ÇÔ¼ö int mean(pa,n) /* array¿Í pa´Â ¿ÏÀüÈ÷ µ¿ÀÏÇÏ´Ù. */ int *pa,n; /* ÇÔ¼öÀÇ ¸Å°³º¯¼ö·Î ¼±¾ðµÇ¾úÀ» ¶§´Â ¹è¿­Àº */ /* ÀÚµ¿ÀûÀ¸·Î Æ÷ÀÎÅÍ·Î º¯È¯µÈ´Ù. */ { int i; long sum; if (n>0) { for (i=0,sum=0;i sum += *(pa + i); return((int)(sum/n)); } else { printf("No array.\n"); return(0); } } ±×·¸´Ù¸é, À§ÀÇ µÎ ÇÔ¼ö¸¦ È£ÃâÇϴ ȣÃâ¹®Àº ¾î¶»°Ô µÉ±î? mean(numb,size); À§ÀÇ numb´Â ¹è¿­¸íÀÌ´Ù. ¾Õ¿¡¼­ À̾߱â ÇÑ °Í ó·³, int pa[]; ¿Í int *pa;´Â °°Àº °ÍÀÌ´Ù. ´ÜÁö Â÷ÀÌÁ¡Àº pa[]¿¡¼­ÀÇ pa´Â Æ÷ÀÎÅÍ »ó¼ö(º¯È­½Ãų¼ö ¾ø´Ù) À̰í, *pa¿¡¼­ÀÇ pa´Â Æ÷ÀÎÅÍ º¯¼ö(º¯È­½Ãų ¼ö ÀÖ´Ù)¶ó´Â °ÍÀÌ´Ù. ´Ù½Ã ¸»Çؼ­ Æ÷ÀÎÅÍ »ó¼ö pa´Â pa++¶ó´Â Ç¥ÇöÀÌ ºÒ°¡´ÉÇϳª Æ÷ÀÎÅÍ º¯¼ö pa´Â pa++´Â Ç¥ÇöÀÌ °¡´ÉÇÏ´Ù. ºñ·Ï, ¹è¿­°ú Æ÷ÀÎÅͰ¡ À§¿Í °°ÀÌ ¹ÐÁ¢ÇÏ°Ô °ü·ÃµÇ¾î ÀÖ´Ù°í´Â ÇÏÁö¸¸ Â÷ ÀÌÁ¡µµ °¡Áö°í ÀÖ´Ù. ÁÖ·Î Æ÷ÀÎÅͰ¡ ÈξÀ ±¤¹üÀ§ÇÏ°Ô ÀÌ¿ëµÈ´Ù. ÇÏÁö¸¸ ÃÊ º¸ÀÚµéÀº ¹è¿­ÀÌ ´õ ºÐ¸íÇϰí È¥µ¿ÀÌ ´ú °£´Ù°í ´À³¥ °ÍÀÌ´Ù. ±×·¯³ª, ¿© ·¯°¡Áö ÀÌÁ¡À¸·Î º¼ ¶§ Æ÷ÀÎÅͰ¡ ÈξÀ È¿À²¼ºÀÌ ³ô´Ù°í ÇÒ °ÍÀÌ´Ù. ¹®ÀÚ¿­À» Æ÷ÀÎÅÍ º¯¼ö·Î ÃʱâÈ­ÇßÀ» °æ¿ì¿¡´Â ¹è¿­Ã³·³ ó¸®ÇÒ ¼ö ÀÖ´Ù. <¹è¿­°ú Æ÷ÀÎÅÍÀÇ ºñ±³> +- char *p ="ABCDEFG"; ÃʱâÈ­ÇÑ ¹®ÀÚ¿­ Æ÷ÀÎÅÍ´Â ¹è¿­·Î »ý°¢ÇÒ¼ö ÀÖ´Ù. | Áï, char p[]="ABCDEFG";¿Í °°´Ù. | +- p[0]='K'; ¹®ÀÚ¿­ÀÇ Ã¹ ¹®ÀÚ°¡ K·Î ¹Ù²ï´Ù. +- char *p; À̰ÍÀº ¿¡·¯ÀÌ´Ù. ÃʱâÈ­ÇÏÁö ¾ÊÀº Æ÷ÀÎÅÍ º¯¼ö´Â | ¹è¿­·Î »ý°¢ÇÒ ¼ö ¾ø´Ù. +- p[0]='A'; +- int x, a[10], *p; | p=a; p=&a[0]°ú °°´Ù | x=*p; x=a[0]°ú °°´Ù | x=a + 3; x=&a[3]°ú °°´Ù | x=*(a + 3); x=a[3]°ú °°´Ù | *a=123; a[0]=123°ú °°´Ù | *(a + 1)=456; a[1]=456°ú °°´Ù +- *(a + 2)=789; a[2]=789¿Í °°´Ù &a[i] + n=10; &a[i+n]=10; a + i + n=10; ÀÌ ¼¼½ÄÀº ¸ðµÎ °°´Ù <¿¹Á¦9> ´ÙÀ½°ú °°ÀÌ Ãâ·ÂÇÏ´Â ÇÁ·Î±×·¥À» ÀÛ¼ºÇ϶ó. z | yz |<¸®½ºÆ®9> main() xyz | { : | char *arr="abcdefghijklmnopqrstuvwxyz", : | *buf=" "; abcde .... vwxyz | int i,j; -----------------+ for (i=26;i>=0;i--) { for (j=i;j<=26;j++) *(buf+j)=*(arr+j); printf("%s\n",buf); } } 4. Æ÷ÀÎÅÍ ¿¬»ê <¿¹Á¦10> Æ÷ÀÎÅͰ¡ ÇÒ ¼ö ÀÖ´Â ¿¬»ê <¸®½ºÆ®10> 1: main() 2: { 3: static int urn[]={100,200,300}; 4: int *ptr1, *ptr2; 5: 6: ptr1=urn; /* ptr1=&urn[0]°ú °°´Ù */ 7: ptr2=&urn[2]; 8: 9: printf("ptr1=%x, *ptr1=%d, &ptr1=%x\n",ptr1,*ptr1,&ptr1); 10: ptr1++; /* Áõ°¡: Æ÷ÀÎÅͰ¡ ±× ´ÙÀ½ 2byte¸¦ °¡¸®Å°°Ô ÇÔ */ 11: printf("ptr1=%x, *ptr1=%d, &ptr1=%x\n",ptr1,*ptr1,&ptr1); 12: printf("ptr2=%x, *ptr2=%d, &ptr2=%x\n",ptr2,*ptr2,&ptr2); 13: ++ptr2; 14: printf("ptr2=%x, *ptr2=%d, &ptr2=%x\n",ptr2,*ptr2,&ptr2); 15: printf("ptr2 - ptr1=%x\n", ptr2 - ptr1); 16: } /* Â÷: µÎ Æ÷ÀÎÅÍÀÇ Â÷¸¦ ±¸ÇÒ ¼ö ÀÖ´Ù */ À§¿¡¼­ ¸»ÇßµíÀÌ ¹è¿­¸íÀº Æ÷ÀÎÅÍ '»ó¼ö'¶ó°í ÇÏ¿´´Ù. »ó¼ö¿¡ »ó¼ö°ªÀ» º¯È­½ÃŰ´Â Áõ°¨ ¿¬»êÀÚ¸¦ »ç¿ëÇÒ ¼ö ¾øµíÀÌ, Æ÷ÀÎÅÍ »ó¼ö¿¡µµ »ç¿ëÇÒ ¼ö °¡ ¾ø´Ù. < Àû ¹ý > | < À§ ¹ý > ptr1 ++; |urn ++; x ++; |3 ++; ptr2=ptr + 2; |ptr2=urn++; ptr2=urn + 1;/* urnÀÇ °ªÀ» º¯È­½Ã*/ |x=y + 3++; /* »ó¼ö°ªÀ» */ /* Áø ¾ÊÀ¸¹Ç·Î Àû¹ý */ | /* º¯È­½ÃŰ¹Ç·Î À§¹ý*/ À§ÀÇ ¿¹·Î º¸´õ¶óµµ ¹è¿­¸íº¸´Ù´Â ¹è¿­¸íÀ» Æ÷ÀÎÅÍ º¯¼ö¿¡ ´ëÀÔ½ÃÄѼ­ »ç ¿ëÇÏ´Â °ÍÀÌ ÈξÀ È¿À²ÀûÀÌ´Ù. <¸®½ºÆ®10>¿¡¼­ ptr, *ptr, &ptrÀÇ Â÷ÀÌÁ¡À» ¸íÈ®È÷ È®ÀÎÇÒ ¼ö°¡ ÀÖ´Ù. Æ÷ÀÎÅÍ´Â ÁÖ¼Ò°ªÀ» °¡Áö°í Àִµ¥, &ptrÀº Æ÷ÀÎÅÍ ÀÚüÀÇ ¹øÁö¸¦ °¡¸®Å²´Ù . 9ÇàÀÇ »óÅ´ ¾Æ·¡¿Í °°´Ù. ptr urn[0] urn[1] urn[2] +--------+ +---------+---------+---------+ | | | | | | | dd32 | =======> | 100 | 200 | 300 | | | | *ptr | | | +--------+ +---------+---------+---------+ °¢¿µ¿ªÀÇ ÁÖ¼Ò ff22 dd32 dd34 dd36 ==== => &ptr 5. ´ÙÂ÷¿ø ¹è¿­°ú Æ÷ÀÎÅÍ À̹ø ÀåÀÇ #1Æí¿¡¼­ ´ÙÂ÷¿ø ¹è¿­¿¡ °üÇÑ ¿¹Á¦°¡ ºÎÁ·Çߴµ¥ ¿¹Á¦¸¦ ÀÛ¼º ÇØ º¸¸é¼­ ´ýÀ¸·Î ´ÙÂ÷¿ø ¹è¿­°ú Æ÷ÀÎÅÍÀÇ °ü°è¿¡ ´ëÇÏ¿© ¾Ë¾Æº¸ÀÚ. 1) 'C Primer plus'¿¡ ³ª¿À´Â °­¿ì·®À» ºÐ¼®ÇÏ´Â ÇÁ·Î±×·¥ 5³â µ¿¾ÈÀÇ ¿ùº° °­¿ì·®À» ºÐ¼®ÇÏ·Á°í ÇÑ´Ù. 5³âÀÌ ÃÑ 60°³¿ùÀ̹ǷΠ60°³ ÀÇ ¿ø¼Ò(°­¿ì·®)¸¦ °®´Â 1Â÷¿ø ¹è¿­À» »ç¿ëÇÏ¿©µµ µÇ³ª, °¢ ¿¬µµº°·Î 12°³ ÀÇ ¿ø¼Ò¸¦ °®´Â 2Â÷¿ø ¹è¿­À» ¾²´Â °ÍÀÌ ¾Ë¾Æº¸±âµµ ½±°í È¿À²ÀûÀÌ´Ù. static float rain[5][12]; /* 5´Â ¿¬µµÀ̰í 12´Â ´ÞÀ» ³ªÅ¸³½´Ù */ ÀÌ ÇÁ·Î±×·¥Àº ¿¬µµº° ÃѰ­¿ì·®°ú 5³â Æò±Õ °­¿ì·® ¹× ¿ùÆò±Õ °­¿ì·®À» ±¸ÇÏ´Â °ÍÀ» ¸ñÀûÀ¸·Î ÇÑ´Ù. 1 #include 2 #define TWLV 12 3 #define YRS 5 4 5 main() 6 { 7 static float rain[YRS][TWLV]={ 8 {10.2, 8.1, 6.8, 4.2, 2.1, 2.8, 0.2, 0.3, 1.1, 2.3, 6.1, 7.4}, 9 {9.2, 9.8, 4.4, 3.3, 2.2, 0.8, 0.4, 0.0, 0.6, 1.7, 4.3, 5.2}, 10 {6.6, 5.5, 3.8, 2.8, 1.6, 0.2, 0.0, 0.0, 0.0, 1.3, 2.6, 4.2}, 11 {4.3, 4.3, 4.3, 3.0, 2.0, 1.0, 0.2, 0.2, 0.4, 2.4, 3.5, 6.6}, 12 {8.5, 8.2, 1.2, 1.6, 2.4, 0.0, 5.2, 0.9, 0.3, 0.9, 1.4, 7.2} 13 }; 14 int year, month; 15 float subtot, total; 16 17 printf(" ³âµµº° °­¿ì·® (ÀÎÄ¡)\n\n"); 18 for (year=0,total=0;year < YRS; year++) { 19 for (month=0,subtot=0;month < TWLV;month++) 20 subtot += rain[year][month]; 21 printf(" %5d %15.1f\n", 1989+year, subtot); 22 total += subtot; 23 } 24 printf("\n ÇØ¸¶´Ù Æò±Õ %.1fÀÎÄ¡ÀÇ ºñ°¡ ³»·È½À´Ï´Ù.\n\n" ,total/YRS); 25 printf("¿ùº° Æò±Õ : \n"); 26 printf("1¿ù 2¿ù 3¿ù 4¿ù 5¿ù 6¿ù 7¿ù 8¿ù 9¿ù10¿ù11¿ù12¿ù\n"); 27 for (month=0;month 28 for (year=0,subtot=0;year 29 subtot += rain[year][month]; 30 printf("3.1f ",subtot/YRS); 31 } 32 printf("\n"); 33 } <¼³¸í> 18 - 23Çà: ÁßøµÈ for¹®À¸·Î year°¡ Çϳª¾¿ º¯ÇÒ µ¿¾È month´Â 12¹ø º¯ ÇÑ´Ù. Áï, subtot´Â ¿¬µµº° °­¿ì·®À» ±¸Çϱâ À§ÇÑ º¯¼öÀ̰í, totalÀº 5 ³â°£ ÃѰ­¿ì·®À» ±¸ÇÏ´Â º¯¼öÀÌ´Ù. 24Çà: 5³â°£ ÃѰ­¿ì·®À» YRS(¿¬µµ¼ö: 5)·Î ³ª´« ¿¬Æò±Õ °­¿ì·®À» Ãâ·Â. 27 - 31Çà: month°¡ Çϳª¾¿ º¯ÇÒ µ¿¾È year´Â 5¹ø º¯ÇÑ´Ù. Áï, subtot º¯ ¼ö·Î ÇØ¸¶´Ù °°Àº ´ÞÀÇ °­¿ì·®À» ¸ðµÎ ´õÇØ ÀúÀåÇÑ ÈÄ, 30Çà¿¡¼­ ±× ´Þ ÀÇ 5³â Æò±Õ °­¿ì·®À» Ãâ·ÂÇÑ ÈÄ, ´Ù½Ã ´ÙÀ½ ´Þ·Î ·çÇÁ¸¦ µ·´Ù. 2) Æ÷ÀÎÅÍ¿Í ´ÙÂ÷¿ø ¹è¿­ 0 1 0 +--+--+ int zippo[3][2]; ¹è¿­ zippo 1 +--+--+ int *pri; 2 +--+--+ pri=zippo; +--+--+ ·Î ¹è¿­ÀÌ ¼±¾ðµÇ°í Æ÷ÀÎÅͰ¡ ÃʱâÈ­ µÇ¾î ÀÖÀ» ¶§, pri´Â ¾îµð¸¦ °¡¸®Å³ ±î? À̰ÍÀº ù° ÇàÀÇ Ã¹Â° ¿­ÀÇ ¹øÁö¸¦ °¡¸®Å²´Ù. zippo == &zippo[0][0] ±×·¯¸é, pri+1À¸·Î pri¸¦ Çϳª¾¿ Áõ°¡½Ãų ¶§ pri´Â ¾ó¸¸Å­ Áõ°¡µÉ±î? pri == &zippo[0][0] pri + 1 == &zippo[0][1] pri + 2 == &zippo[1][0] pri + 3 == &zippo[1][1] pri + 4 == &zippo[2][0] ½ÄÀ¸·Î Çà¿ì¼±À¸·Î ¿­ÀÌ Çϳª¾¿ º¯È­ÇØ °£´Ù. À§¿¡¼­ zippo´Â ÀÌÂ÷¿ø ¹è¿­¸íÀÌ´Ù. ±×·¯¸é, °¢°¢ µÎ°³ÀÇ ¿ø¼Ò·Î ±¸¼ºµÈ ¹è¿­ÀÎ 3°³Çà¿¡ ´ëÇÑ À̸§Àº ¹«¾ùÀϱî? ù ÇàÀÇ À̸§Àº zippo[0]À̰í 3 Çà ÀÇ À̸§Àº zippo[2]ÀÌ µÈ´Ù. À̰ÍÀº ¾Æ·¡ »ç½ÇÀ» ÀǹÌÇÑ´Ù. 0 1 zippo[0] == &zippo[0][0] | zippo´Â zippo =============> +--+--+ zippo[1] == &zippo[1][0] | 3*2¹è¿­ zippo[0] ==> 0 | | | zippo[2] == &zippo[2][0] | ÀüüÀÇ +--+--+ | 2 Â÷¿ø zippo[1] ==> 1 | | | °¢ ºÎºÐ¹è¿­¸íÀº °¢ ºÎºÐ¹è¿­ | ¹è¿­¸íÀÓ +--+--+ ÀÇ Ã¹¹øÂ° ¿ä¼ÒÀÇ ÁÖ¼Ò¸¦ °¡¸® | zippo[2] ==> 2 | | | Ű´Â Æ÷ÀÎÅÍÀÌ´Ù. | +--+--+ <¿¹Á¦11> ºÎºÐ ¹è¿­¸í°ú Æ÷ÀÎÅÍÀÇ °ü°è ( #1ÀÇ <¿¹Á¦ 6>°ú ºñ±³ ¿äÇÔ ) <¸®½ºÆ®11> 1 : main() 2 : { 3 : static int junk[3][4]={ 4 : { 2, 4, 6, 8 }, 5 : { 100, 200, 300, 400 }, 6 : { 10, 40, 60, 90 } 7 : }; 8 : int row; 9 : 10: for (row=0;row < 3;row++) 11: printf("%dÇàÀÇ Æò±ÕÀº %dÀÌ´Ù.\n",row,avrg(junk[row],4)); 12: } 13: 14: int avrg(int array[],int n) 15: { 16: int i; 17: long sum; 18: 19: if (n>0) { 20: for (i=0,sum=0;i < n; i++) 21: sum += (long) array[i]; 22: return((int)(sum/n)); /*°ýÈ£´Â cast¿¬»êÀÚÀÇ ¿ì¼±¼øÀ§ ¶§¹®*/ 23: } 24: else { 25: printf("¹è¿­ ¾îµð°¬¾î?\n"); 26: return(0); 27: } 28: } ¹è¿­À» ÇÔ¼ö·Î ³Ñ±â´Â ¿¹Á¦µé¿¡¼­ ¹Ýµå½Ã ¹è¿­ÀÇ Å©±âµµ °°ÀÌ ³Ñ±â´Â °Í À» ´«Ä¡ºü¸¥ ºÐµéÀº ´À²¼À» °ÍÀÌ´Ù. C´Â ¹è¿­ÀÇ Å©±â°¡ ¾îÂîµÆ°Ç »ó°üÇÏÁö ¾ÊÀ¸¹Ç·Î ÀÌ Á¡Àº Ç×»ó ½Å°æÀ» ¾²´Â °ÍÀÌ ÁÁÀº ½À°üÀÌ´Ù. 11Çà¿¡¼­´Â 2Â÷¿ø ¹è¿­ÀÇ ºÎºÐ¹è¿­(1Â÷¿ø ¹è¿­)¸íÀ» ÇÔ¼ö·Î ³Ñ°Ü¼­ ÇÔ¼ö ¿¡¼­´Â 2Â÷¿ø ¹è¿­ÀÇ ºÎºÐ¹è¿­ÀÎ 1Â÷¿ø ¹è¿­·Î 󸮸¦ Çϰí ÀÖ´Ù. 6. Æ÷ÀÎÅÍ ¹è¿­ Æ÷ÀÎÅÍ ¹è¿­À̶õ Æ÷ÀÎÅ͸¦ ¿ä¼Ò·Î ÇÏ´Â ¹è¿­À» ¸»ÇÑ´Ù. Æ÷ÀÎÅͶõ ´Ù¸¥ º¯ ¼öÀÇ ÁÖ¼Ò¸¦ ±â¾ïÇÏ´Â º¯¼ö¶ó ÇßÀ¸¹Ç·Î °¢°¢ÀÇ º¯¼öÀÇ ÁÖ¼Ò¸¦ ¹è¿­¿¡ ÀúÀå ÇØ µÐ °ÍÀ̶ó°í º¼ ¼ö ÀÖ´Ù. ÀÌ Æ÷ÀÎÅÍ ¹è¿­À» ÀÌ¿ëÇÏ¸é ´Ü¼ø º¯¼ö¸¦ ¹è¿­ ó·³ Ãë±ÞÇÒ ¼ö ÀÖÀ¸¸ç, 2Â÷¿ø ¹è¿­À» 1Â÷¿ø ¹è¿­·Î Ç¥ÇöÇÏ´Â °ÍÀÌ °¡´ÉÇÏ ¿© Áø´Ù. ÀÌ·¯ÇÑ ±â´ÉÀº ´Ù¸¥ ¾ð¾î¿¡´Â ¾ø´Â C °íÀ¯ÀÇ ±â´ÉÀÌ´Ù. ¿¹¸¦µé¸é main() { static int a=10,b=20,c=30,d=40,e=50; static int *arr[5]={&a,&b,&c,&d,&e}; int i; *arr[3]=400; for (i=0;i<=4;i++) printf("arr[%d] ==> Address: %04X,Value: %d\n",i,arr[i],*arr[i]); } À§ ÇÁ·Î±×·¥¿¡¼­´Â ¹è¿­ *arr[]ÀÇ ¿ä¼Ò·Î º¯¼öÀÇ ÁÖ¼Ò¸¦ ÁöÁ¤Çϰí ÀÖ´Ù.±× ·± ´ÙÀ½¿¡´Â ¹è¿­ÀÇ ¿ä¼Ò¸¦ ÂüÁ¶ÇÏ¿© ¼öÀÇ °ªÀ» Ãâ·ÂÇϰí ÀÖ´Ù. Áï, ´Ü¼ø º¯¼ö¸¦ ¹è¿­ ¿ä¼Ò·Î Ãë±ÞÇÏ°Ô µÇ´Â °ÍÀÌ´Ù. Æ÷ÀÎÅÍ ¹è¿­Àº À§ ÇÁ·Î±×·¥°ú °°ÀÌ ±× ¿ø¼Ò·Î ´Ù¸¥ º¯¼öµéÀÇ ÁÖ¼Ò¸¦ °®´Â´Ù. ¸¸¾à, ÀÌ ÇÁ·Î±×·¥¿¡¼­ º¯¼ö a - e ÀÇ °ªÀ» Űº¸µå·Î ÀԷ¹ÞÀ¸·Á¸é ´ÙÀ½ °ú °°Àº ºÎºÐÀ» »ðÀÔÇÏ¸é µÈ´Ù. for (i=0;i<=4;i++) { printf("*arr[i] =? "); scanf("%d",arr[i]); } À§¿¡¼­ 'arr[i]'´Â ±× ¿ä¼ÒÀÇ ¹øÁö¸¦ ±â¾ïÇϹǷΠscanf()ÇÔ¼ö¿¡¼­ ¹è¿­¸í ¾Õ¿¡ ¹øÁö ¿¬»êÀÚ &¸¦ ±â¼úÇÏÁö ¾Ê¾Æ¾ß ÇÑ´Ù. Æ÷ÀÎÅÍ ¹è¿­ÀÌ ¸Þ¸ð¸®¿¡ ¼ö ·ÏµÉ ¶§ ¹è¿­ ÀÚü´Â ¹è¿­ ¿µ¿ª¿¡ ÀúÀåµÇ°í, ±× ³»¿ëµéÀº ´Ü¼øº¯¼ö ¿µ¿ª¿¡ ÀúÀåµÈ´Ù. ÇÏÁö¸¸ ÀÌ·¯ÇÑ Æ÷ÀÎÅÍ ¹è¿­ÀÌ µîÀåÇÏ°Ô µÈ °ÍÀº ±æÀ̰¡ °¢°¢ ´Ù¸¥ ¹®ÀÚ¿­ À» ¹è¿­·Î ó¸®ÇÒ °æ¿ì¿¡ Æí¸®ÇÏ°Ô ÀÌ¿ëµÇ±â ¶§¹®ÀÌ´Ù. <¿¹Á¦12> Æ÷ÀÎÅÍ ¹è¿­À» »ç¿ëÇÏ´Â ´ëÇ¥ÀûÀÎ ¿¹ - À̿ܿ¡´Â °ÅÀǾ²Áö ¾ÊÀ½ ( ±æÀ̰¡ ÀÏÁ¤Ä¡ ¾ÊÀº ¹®ÀÚ¿­À» ¹è¿­·Î ó¸®ÇÏ´Â °æ¿ì! ) <¸®½ºÆ®12>1 main() 2 { 3 static char *week[]={ 4 "Sunday","Monday","Tuesday","Wednesday", 5 "Thursday","Friday","Saturday"}; 6 int k; 7 8 for (k=0;k<7;k++) 9 printf("week[%d]=%c, %s\n",k,*week[k],week[k]); 10 } <½ÇÇà°á°ú> week[0]=S, Sunday week[1]=M, Monday : <µµ ÇØ> +---+ +----------+ week[0] | . | ----------> | Sunday\0 | +---+ +----------+ week[1] | . | ----------> | Monday\0 | +---+ +----------+ | | | | week[0]¿¡ s°¡ µé¾îÀÖ´Â °ÍÀÌ ¾Æ´Ï°í week[0]°¡ °¡¸®Å°°í ÀÖ´Â ¹øÁöÀÇ ³»¿ëÀÌ S ÀÌ´Ù. ±×¸®°í, ÇÁ·Î±×·¥ÀÇ 9Çà¿¡¼­ printf()ÇÔ¼ö¿¡¼­ ¹®ÀÚ¿­À» ³ªÅ¸³»´Â °æ¿ì¿¡ %s¿Í ¸ÞÄ¡µÇ´Â ÀÎÀÚ´Â ¹®ÀÚ¿­ÀÇ Ã¹¹øÂ° ÁÖ¼Ò¸¦ ³ªÅ¸³»´Â Æ÷ÀÎÅÍÀÌ´Ù. (%s´Â Æ÷ÀÎÅͰ¡ °¡¸®Å°´Â À§Ä¡·ÎºÎÅÍ '\0\À» ¸¸³¯ ¶§±îÁö ±× ³»¿ëÀ» Ãâ·Â ÇÏ´Â Çüº¯È¯ ÁöÁ¤ÀÚÀÌ´Ù - Á¦ 1Àå Âü°í ) ±×·¯¸é, Æ÷ÀÎÅÍ ¹è¿­À» ÇÔ¼ö·Î ÀÎÀÚ·Î ³Ñ°ÜÁÙ °æ¿ì¿¡´Â ¾î¶»°Ô ÇÒ±î? <¿¹Á¦13> <¸®½ºÆ®12>¿¡¼­ 9ÇàÀÇ Ãâ·ÂÀ» ÇÔ¼ö¿¡¼­ ÇàÇÏ´Â ÇÁ·Î±×·¥ ÀÛ¼º. <¸®½ºÆ®13> <¸®½ºÆ®12>ÀÇ 9ÇàÀ» prnt(week[i]);·Î °íÄ¡ÀÚ. ±×¸®°í prnt()ÇÔ¼ö¸¦ ÀÛ¼ºÇÏÀÚ. prnt(char *w[]) { /*Æ÷ÀÎÅÍ ¹è¿­À» ³Ñ°Ü ¹Þ¾ÒÀ¸´Ï °¡ÀÎ */ printf("Week=%s\n", w); /*¼ö Çü¼±¾ðµµ Æ÷ÀÎÅÍ ¹è */ } /* ¿­·Î ÇÏÀÚ */ 7. Æ÷ÀÎÅÍ¿Í Àμö ¿ì¸®´Â ¾Õ¿¡¼­ ÇÔ¼ö¸¦ ¹è¿ï ¶§ Call by reference(ÂüÁ¶Àü´Þ)À» ¹è¿ü´Ù.Æ÷ ÀÎÅÍ´Â ÂüÁ¶ Àü´ÞÀ» ÇàÇÒ ¶§µµ ÀÌ¿ëÀÌ µÈ´Ù. ÀÌ·¯ÇÑ °æ¿ì È£ÃâÃø¿¡¼­´Â ÀÎ ¼öÀÇ ÁÖ¼Ò¸¦ Àü´ÞÇϸç, ÇÇÈ£ÃâÃø¿¡¼­´Â Àμö¸¦ Æ÷ÀÎÅÍ·Î ¹Þ¾Æ¿Â´Ù. sub(&a,&b,&c); ÇÔ¼öÈ£Ãâ | char *s="Welcome to Korea!"; | int a=10, b=20; void sub(k,b,s) | sub(s,b,c); ÇÔ¼ö È£Ãâ int *k, *b, *s; Àμö¸¦ Æ÷ÀÎÅÍ·Î| { ... ¼±¾ðÇÑ´Ù. | void sub(char *k,int a,int b); | { ... Àμö¸¦ Æ÷ÀÎÅÍ·Î ¼±¾ð(*k) ÂüÁ¶¿¡ ÀÇÇÑ Àü´ÞÀº ¾Õ¿¡¼­ ¿¹Á¦·Î ¸¹ÀÌ µé¾ú´Ù. ¿ì¸®°¡ ¾Ë°í ÀÖ¾î¾ß ÇÏ ´Â °ÍÀº Æ÷ÀÎÅÍ(ÁÖ¼Ò°ª)À» ÇÔ¼ö·Î ³Ñ±èÀ¸·Î½á ÂüÁ¶ÀÇ Àü´ÞÀÌ °¡´ÉÇÏ°Ô µÈ ´Ù´Â °ÍÀÌ´Ù. <Âü°í> ¹®ÀÚ¿­ ¹è¿­¿¡ °üÇÑ Åͺ¸ C 2.0ÀÇ ¹ö±× ÇÊÀÚ°¡ ÇÁ·Î±×·¥À» ÀÛ¼ºÇÏ´ø µµÁß ¿ì¿¬È÷ Åͺ¸ CÀÇ ¹ö±×¸¦ ¹ß°ßÇÏ°Ô µÇ¾ú ´Ù. ÀÌ ±ÛÀ» Àд ºÐµéÀº ÀÌ·¯ÇÑ ¹ö±×¶§¹®¿¡ ¸î³¯ ¸îÄ¥ °í»ýÇÏ´Â °æ¿ì°¡ ¾øµµ·Ï ±× »ç·Ê¸¦ ¹àÈ÷°íÀÚ ÇÑ´Ù. ¾Æ·¡ ÇÁ·Î±×·¥À» º¸ÀÚ. (¾Ë±â ½±°Ô ÃÖ´ëÇÑ °£·«È­ ½ÃŲ °ÍÀÌ´Ù) main() { char *str1=" "; char *str2=" "; printf("¾ÏÈ£¸¦ ÀÔ·ÂÇϽʽÿä:"); gets(str1); printf("È®ÀÎÀ» À§ÇØ Çѹø´õ ÀÔ·ÂÇϽʽÿä:"); gets(str2); if (!strcmp(str1, str2)) printf("¾ÏÈ£°¡ °°½À´Ï´Ù!"); } ¿©·¯ºÐµéµµ °¨À» ÀâÀ¸¼Ì°ÚÁö¸¸, À§ ÇÁ·Î±×·¥Àº µÎ °³ÀÇ ¹®ÀÚ¿­À» ¹Þ¾Æ ºñ±³ÇÏ¿© °°À¸¸é (strcmpÇÔ¼ö´Â µÎ °³ÀÇ ¹®ÀÚ¿­ÀÇ ÁÖ¼Ò¸¦ ¹Þ¾Æ ºñ±³ÇÏ¿© °°À¸¸é 0À» µÇµ¹¸°´Ù) °°´Ù´Â ¸Þ½ÃÁö¸¦ Ãâ·ÂÇÏ´Â ÇÁ·Î±×·¥ÀÌ´Ù. ÇÏÁö¸¸ À§ ÇÁ·Î±×·¥À» ½ÇÇà½ÃŰ¸é ¸Þ½ÃÁö´Â ¹«Á¶°Ç °°´Ù°í Ãâ·ÂÀÌ µÈ´Ù. ±×·¯³ª str2ÀÇ °ø¹éÀ» Áõ°¡½ÃÄÑ str1°ú ´Ù¸£°Ô ÇÏ¸é ½ÇÇà°á°ú°¡ ¹Ù·Î ³ª ¿Â´Ù. ´Ù¸¥ ÄÄÆÄÀÏ·¯¿¡¼­´Â ÀÌ·¯ÇÑ Çö»óÀÌ ¹ß»ýÇÏÁö ¾Ê´Â´Ù... ¹«½¼ ¸»ÀÎÁö È®ÀÎÇϱâ À§Çؼ­ 5Çà¿¡ printf("%p %p", str1, str2);¸¦ »ðÀÔÇØ º¸¶ó.. ÀÌ»óÇÑ °Ô º¸ÀÏ °ÍÀÌ´Ù.. À̹øÀå¿¡¼­´Â ¹è¿­°ú Æ÷ÀÎÅÍ¿¡ ´ëÇÑ ±âº»ÀûÀÎ °³³äÀ» ¸¹Àº ¿¹Á¦µé°ú ÇÔ²² ¼³¸íÀ» ÇÏ¿´´Ù. ¿©·¯ºÐµéÀÌ ÇÑ ¹ø Àаí´Â ÀÌÇØ°¡ Àß °¡Áö ¾ÊÀ» °ÍÀÌ´Ù. ±× ·¯³ª ¿¹Á¦µéÀ» ¼öÇàÇØ º¸°í ±× ¿¹Á¦µéÀ» º¯°æ½ÃÄÑ °¡¸é¼­ Æ÷ÀÎÅͰ¡ ¾î¶°ÇÑ ÀÛ¿ëÀ» ÇÏ´ÂÁö ¾Ë·Á°í ÇÑ´Ù´Â ÀÇÁö¸¸ ÀÖ´Ù¸é ÀÌ µéÀÇ ÀÌÇØµµ ±×¸® ¾î·Á¿î °Í¸¸Àº ¾Æ´Ò °ÍÀÌ´Ù. ÀÌ ±Û¿¡¼­´Â Æ÷ÀÎÅÍÀÇ ±âº»ÀûÀÎ ³»¿ë¸¸À» ´Ù·ç¾ú´Ù. ÀÌ ±Û¿¡¼­ ¾ð±ÞÇÏÁö ¾ÊÀº Æ÷ÀÎÅÍÀÇ ±íÀº °÷¿¡ °üÇÑ ³»¿ëÀº ¿©·¯ºÐµéÀÌ Ãʺ¸µüÁö¸¦ ¶¼°í³ª¼­ °ø ºÎ¸¦ ÇØ¾ß ÀÌÇØÇϴµ¥ ¹«¸®°¡ ¾øÀ» °ÍÀÌ´Ù.