` ¥·. ¹è¿­ < 1Â÷¿ø ¹è¿­ > ¹è¿­Àº °°Àº µ¥ÀÌÅÍ À¯ÇüÀÇ º¯¼ö¸¦ ¸¹ÀÌ ¸¸µé ¶§ À¯¿ëÇÏ°Ô »ç¿ëµÈ´Ù. ¦£¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¤ ¦¢ int ave[10]; ¦¢ ¦¢ | | +------------- ¹è¿­ÀÇ °¹¼ö /* ¹Ýµå½Ã 0ºÎÅÍ ½ÃÀÛÇÏ¿©¾ß¸¸ ÇÑ´Ù */ ¦¢ ¦¢ | +----------------- ¹è¿­ÀÇ À̸§ ¦¢ ¦¢ +--------------------- ¹è¿­ÀÇ µ¥ÀÌÅÍ À¯Çü ¦¢ ¦¢ ( ave[0], ave[1], ave[2], ave[3], ..... ,ave[8], ave[9] ) 10°³ÀÇ int º¯¼ö°¡ »ý±ä´Ù. ¦¢ ¦¢ ¦¢ ¦¢ ¦¢ ¦¦¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¥ ave[0]¿¡¼­ ºÎÅÍ ave[9]±îÁö´Â ¸ðµÎ intÇü º¯¼öÀÌ´Ù. ±×¸®°í '[ ]'¾È¿¡ ¾²¿© ÀÖ´Â ¼ýÀÚ¸¦ '÷ÀÚ'¶ó °í ºÎ¸¥´Ù. ÀÌ Ã·ÀÚ¸¦ ÇÁ·Î±×·¥¿¡¼­ »ç¿ëÇÒ ¶§´Â ¼ýÀÚ´ë½Å º¯¼ö¸¦ ½áµµ µÇ¸ç ÷ÀÚÀÇ ¹üÀ§´Â '0'¿¡ ¼­ºÎÅÍ 'Á¤ÀÇÇÒ ¶§ ¾²¿©Áø ¼ýÀÚ - 1'±îÁö ÀÌ´Ù. ±×¸®°í ÷ÀÚÀÇ ¹üÀ§¸¦ »ç¿ëÀÚ ¸¶À½´ë·Î Á¤ÀÇÇÒ ¼ö ´Â ¾ø´Ù. ¿¹¸¦ µé¾î ave[3]¿¡¼­ ave[7]±îÁöÀÇ 5°³ÀÇ ¿ø¼Ò·Î ÀÌ·ç¾îÁø ¹è¿­Àº Á¤ÀÇÇÒ ¼ö ¾øÀ¸¸ç, ÷ ÀÚ´Â ¹Ýµå½Ã 0ºÎÅÍ ½ÃÀÛÇÏ¿©¾ß¸¸ ÇÑ´Ù. ¦£¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¤ ¦¢ int a = 3, ave[10]; ¦¢ ¦¢ ave[a] = 100; ¦¢ ¦¢ ave[9] = 200; ¦¢ ¦¢ ave[10] = 400; ¡æ ¿¡·¯°¡ ¹ß»ýÇÏÁö´Â ¾ÊÁö¸¸ Ä¡¸íÀûÀÎ ¹ö±×°¡ ¹ß»ýÇÒ ¼ö ÀÖ´Ù. Á¤ÀÇÇÒ ¶§ ¦¢ ¦¢ '10'À̶ó°í Å©±â¸¦ Á¤Ç߱⠶§¹®¿¡ ¾²ÀÏ ¶§´Â '0 ~ 9 ±îÁö ¾µ ¼ö ÀÖ´Ù. ¦¢ ¦¢ ¦¢ ¦¢ ¦¢ ¦¦¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¥ ¹è¿­¿¡ ´ëÇؼ­µµ ´Ù¸¥ º¯¼ö¿Í °°ÀÌ ÃʱⰪÀ» ÁöÁ¤ÇÒ ¼ö ÀÖ´Ù. ´Ü, ÀÌ °æ¿ì¿¡´Â ±× ¹è¿­ÀÇ ¸Þ¸ð¸® À¯ÇüÀÌ auto¿©¼­´Â ¾ÈµÇ°í externÀ̳ª Àü¿ª static, Áö¿ª static À¯ÇüÀÎ °æ¿ì¿¡¸¸ ÃʱⰪÀ» ÁÙ ¼ö ÀÖ´Ù(MSC¿Í TC¿¡¼­´Â auto À¯ÇüÀÇ ¹è¿­µµ ÃʱⰪÀ» ÁÙ ¼ö ÀÖµµ·Ï Çã¿ëÇÏ°í ÀÖ´Ù). ´ÙÀ½Àº 1Â÷¿ø ¹è¿­ÀÇ ÃʱâÈ­ ¿¹ÀÌ´Ù. ¦£¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¤ ¦¢ ©ç int ave[10] = { 10, 30, 50, 70, 100, 40, 30, 55, 223, 765 }; ¦¢ ¦¢ ©è int ia[] = { 10, 30, 50, 70, 100, 40, 30, 55, 223, 765 }; ¦¢ ¦¢ ©é int ja[10] = { 10, 30, 50, 70, 100, 40, 30, }; ¦¢ ¦¢ +------- ¼ýÀÚ µÚ¿¡ ÄÞ¸¶°¡ ÀÖ´Ù. ¦¢ ¦¢ ©ê int ka[3] = { 1, 10, 5, 7, 8 }; ¦¢ ¦¢ ©ë char ca[5] = { "Test" }; ¦¢ ¦¢ ¦¢ ¦¢ ¦¢ ¦¦¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¥ ù¹ø°´Â ¸ðµç ¹è¿­ÀÇ ¿ø¼Ò¸¦ ÃʱâÈ­ÇÑ °ÍÀÌ´Ù. ±×¸®°í µÎ¹ø°´Â ÷ÀÚ¸¦ »ý·«ÇÑ °æ¿ìÀÌ´Ù. ÷ÀÚ ¸¦ »ý·«Çß´Ù´Â °ÍÀº ¹è¿­ÀÇ Å©±â¸¦ »ý·«Çß´Ù´Â ¶æÀÌ µÈ´Ù. ÀÌ·¯ÇÑ °æ¿ì´Â ¹è¿­ÀÇ ¸ðµç µ¥ÀÌÅ͸¦ ÃʱâÈ­ÇÒ ¶§¸¸ °¡´ÉÇÑ °ÍÀ̸ç, ÷ÀÚ¸¦ »ý·«Çϸé ÄÄÆÄÀÏ·¯´Â ÃʱâÈ­ÇÑ µ¥ÀÌÅÍÀÇ °¹¼ö ¸¸Å­ÀÇ ¹è¿­ À» ÀÚµ¿À¸·Î Àâ°Ô µÇ¾î ÀÖ´Ù. Áï ÃʱâÈ­ÇÑ µ¥ÀÌÅÍ°¡ 10°³ À̹ǷΠ¹è¿­Àº 10°³°¡ ÀâÈ÷°Ô µÈ´Ù. ¼¼¹ø°´Â µ¥ÀÌÅÍÀÇ °¹¼ö°¡ 7°³ ¹Û¿¡ ¾øÀ¸¸ç ¸¶Áö¸· µ¥ÀÌÅÍ µÚ¿¡´Â ÄÞ¸¶°¡ ÂïÇôÀִµ¥, ÀÌ°ÍÀº 10°³ÀÇ ¹è¿­ Áß¿¡¼­ ja[0]ºÎÅÍ ja[6]±îÁö¸¸ ÃʱâÈ­ÇÏ°í ³ª¸ÓÁö´Â ¸ðµÎ 0À¸·Î ÃʱâÈ­Ç϶ó´Â ¶æÀÌ´Ù (½Ç¼ö µ¥ÀÌÅÍ À¯ÇüÀÇ °æ¿ì¿¡´Â ´ç¿¬È÷ 0.0ÀÌ µÇ¸ç char À¯ÇüÀÇ °æ¿ì¿¡´Â ³Î ¹®ÀÚ('\0')°¡ µÇ°í Æ÷ ÀÎÅÍ µ¥ÀÌÅÍ À¯ÇüÀÇ °æ¿ì¿¡´Â ³Î Æ÷ÀÎÅÍ(NULL)°¡ µÈ´Ù). ¹Ý¸é¿¡ ³×¹ø°¿Í °°ÀÌ ÁöÁ¤ÇÑ ¿ø¼ÒÀÇ °¹¼öº¸´Ù ´õ ¸¹Àº ÃʱⰪÀ» ÁÖ¾úÀ» ¶§¿¡´Â ÄÄÆÄÀÏ ¿¡·¯°¡ ¹ß»ýÇϱ⠶§¹®¿¡ ÁÖÀÇÇÏ¿©¾ß ÇÑ´Ù. ¸¶Áö¸· ´Ù¼¸¹ø°´Â char À¯ÇüÀÇ ¹è¿­¿¡ ½ºÆ®¸µ ÇüÅ·ΠÃʱⰪÀ» ÁØ °ÍÀε¥, ½ºÆ®¸µÀº ¿©·¯ °³ÀÇ ¹®ÀÚµéÀÌ ¸ðÀÎ °ÍÀ¸·Î ¸Ç ³¡¿¡ ³Î ¹®ÀÚ('\0')°¡ ÀÖ´Â °ÍÀÌ ´Ù¸£´Ù. µû¶ó¼­ À§ÀÇ Á¤ÀÇ´Â ´ÙÀ½°ú °° Àº Àǹ̸¦ °®´Â´Ù. ¦£¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¤ ¦¢ char ca[5] = { 'T','e','s','t','\0' }; ¦¢ ¦¦¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¥ ¶ÇÇÑ ÃʱⰪÀ» ½ºÆ®¸µ ÇüÅ·ΠÁØ °æ¿ì¿¡´Â ´ÙÀ½°ú °°ÀÌ Áß°ýÈ£¸¦ »ý·«ÇÒ ¼ö ÀÖ´Ù. ¦£¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¤ ¦¢ char c3[] = Computer"; ¦¢ ¦¢ char c4[10] = "string"; ¦¢ ¦¦¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¥ ´ÙÀ½Àº 1Â÷¿ø ¹è¿­À» »ç¿ëÇÑ ÇÕ°è ÇÁ·Î±×·¥ÀÌ´Ù. void main(void) { int i, data[] = { 78, 55, 99, 75, 84, 39, 67, 98, 87, 100 }; long int sum = 0; float ave; for (i = 0; i < 10; i++) sum += data[i]; ave = (float)sum / 10; printf("TOTAL = %ld AVERAGE = %.2f\n",sum,ave); } ¦£¦¡¦¡¦¡¦¤ ¦¢ °á°ú ¦¢ ¦¦¦¡¦¡¦¡¦¥ --------------------------------------------------------------------------------- TOTAL = 782 AVERAGE = 78.20 main() { int year, mon, day; int days; /* Àüü ³¯¼ö¸¦ ±â¾ï */ int ia[] = {0, 31, 59, 90, 120, 151, 181, 212, 243, 273, 304, 334 }; printf("Year ? "); scanf("%d",&year); printf("Month ? "); scanf("%d",&mon); printf("Day ? "); scanf("%d",&day); if (mon >= 1 && mon <= 12) { days = ia[mon-1] + day; /* ³¯¼ö¸¦ °è»ê */ if (mon > 2 && (year % 400 == 0 || (year % 4 == 0 && year % 100 != 0))) ++days; /* ±×ÇØ°¡ À±³âÀÌ°í ¿ùÀÌ 3¿ù ÀÌÈĸé ÇϷ縦 Áõ°¡ */ printf("It is %d days.\n",days); } else printf("Error : Invalid month!\n"); } ¦£¦¡¦¡¦¡¦¤ ¦¢ °á°ú ¦¢ ¦¦¦¡¦¡¦¡¦¥ --------------------------------------------------------------------------------- Year ? 1995 ³ú Month ? 10 ³ú Day ? 30 ³ú It is 303 days. main() { int ia[10] = { 0, }; /* ÃʱⰪÀÌ ¸ðµÎ 0 */ int i; printf("*** Input numbers between 0 and 99 ***\n"); scanf("%d",&i); while (i >= 0 && i <= 99) { ++ia[i / 10]; scanf("%d",&i); } printf("FREQUENCIES\n"); for (i = 0; i < 10; i++) printf("%2d ~ %2d : %10d\n",i*10,(i+1)*10-1,ia[i]); } ¦£¦¡¦¡¦¡¦¤ ¦¢ °á°ú ¦¢ ¦¦¦¡¦¡¦¡¦¥ --------------------------------------------------------------------------------- *** Input numbers between 0 and 99 *** 2 4 6 8 10 20 30 40 50 60 70 80 90 100 ³ú FREQUENCIES 0 ~ 9 : 4 10 ~ 19 : 1 20 ~ 29 : 1 30 ~ 39 : 1 40 ~ 49 : 1 50 ~ 59 : 1 60 ~ 69 : 1 70 ~ 79 : 1 80 ~ 89 : 1 90 ~ 99 : 1 ´ÙÀ½Àº N°³ÀÇ Á¤¼ö¸¦ Àоîµé¿© À̸¦ ÀÛÀº ¼ö¿¡¼­ Å« ¼öÀÇ ¼ø¼­·Î Ãâ·ÂÇÏ´Â ÇÁ·Î±×·¥À¸·Î, NÀº ¸ÕÀú ÀÐ¾î µéÀ̸ç 100À» ³ÑÁö ¾Ê´Â´Ù°í °¡Á¤ÇÑ´Ù. void main() { static int data[100]; int i, j, t, N; printf("Input the number of data: "); scanf("%d",&N); for (i = 0; i <= N - 1; i++) /* ¹è¿­ÀÇ ÀÔ·Â */ scanf("%d",&data[i]); for (i = 0; i <= N - 2; i++) for (j = i + 1; j <= N - 1; j++) if (data[i] > data[j]) { /* ¹öºí Á¤·Ä(bubble sort) */ t = data[i]; data[i] = data[j]; data[j] = t; } printf("Sorted data:\n"); for (i = 0; i <= N - 1; i++) { /* Á¤·ÄµÈ ¹è¿­À» Ãâ·Â */ printf("%10d",data[i]); if ((i + 1) % 7 == 0) printf("\n"); } } ¦£¦¡¦¡¦¡¦¤ ¦¢ °á°ú ¦¢ ¦¦¦¡¦¡¦¡¦¥ --------------------------------------------------------------------------------- Input the number of data: 10 ³ú 19 95 ³ú 10 ³ú 30 ³ú 33 26 36 82 ³ú 62 70 ³ú Sorted data: 10 19 26 30 33 36 62 70 82 95 ´ÙÀ½Àº µ¥ÀÌÅ͸¦ ÀÐ¾î ±× Áß °¡Àå ±ä ¶óÀÎÀÇ ±æÀÌ¿Í ±× ¶óÀÎ Àüü¸¦ Ãâ·ÂÇÏ´Â ÇÁ·Î±×·¥À¸·Î, ÀÐ À» µ¥ÀÌÅͷδ ÀÌ ÇÁ·Î±×·¥ ÀÚü¸¦ ³ÖÀº °ÍÀÌ´Ù. #include char data[250]; /* get_line ÇÔ¼ö¿¡¼­ ÀоîµéÀÎ µ¥ÀÌÅ͸¦ ±â¾ïÇÏ´Â ¹è¿­·Î extern ¹è¿­·Î Á¤ÀÇ ÇÏ¿´´Ù */ void main() { char mdata[250]; /* Áö±Ý±îÁö ÀÐÀº ¶óÀÎ Áß °¡Àå ±ä ¶óÀÎÀ» ±â¾ï½Ãų ¹è¿­ */ int max = 0; int l, i; while (l = get_line()) /* ÇÑ ÁÙÀ» ÀÐÀ½ */ if (l > max) { /* ÀÌ°ÍÀÌ ÇöÀç ¶óÀÎ º¸´Ù ±æ¸é */ for (i = 0; i <= l - 1; i++) mdata[i] = data[i]; /* ±×´ë·Î º¹»ç */ max = l; } if (max == 0) /* ÀоîµéÀÎ ¶óÀÎÀÌ ¾øÀ¸¸é */ printf("No data.\n"); else { printf("The longest line is:\n"); for (i = 0; i <= max - 1; i++) putchar(mdata[i]); printf("The length is: %d\n",max); } } int get_line() { /* ÇÑ ÁÙÀ» ÀÐÀ½ */ int i = 0; while ((data[i] = getchar()) != EOF) if (data[i++] == '\n') return (i); return (i); } ¦£¦¡¦¡¦¡¦¤ ¦¢ °á°ú ¦¢ ¦¦¦¡¦¡¦¡¦¥ --------------------------------------------------------------------------------- C:\TC>longline < longline.c ³ú The longest line is: printf("\nThe length is: %d\n",max); The length is: 41 < ´ÙÂ÷¿ø ¹è¿­ > ´ÙÂ÷¿ø ¹è¿­Àº ´ÙÀ½°ú °°ÀÌ Çà¿­À» °è»êÇÏ´Â ÇÁ·Î±×·¥À» ¸¸µé ¶§ »ç¿ëÇÑ´Ù. ¦£¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¤ ¦¢ [0] [1] [2] [3] ¦¢ ¦¢ [0] A B C D ¦¢ ¦¢ [1] E F G H ¦¢ ¦¢ [2] I J K L ¦¢ ¦¢ ¦¢ ¦¢ /***** ÇÁ·Î±×·¥ ³»ºÎ¿¡¼­ Çà¿­ÀÇ °¢°¢ÀÇ ¿ø¼Ò¸¦ ÀúÀåÇÏ´Â ¹æ¹ý *****/ ¦¢ ¦¢ int mat[3][4]; ¦¢ ¦¢ mat[0][0] = A; mat[0][1] = B; mat[0][2] = C; mat[0][3] = C; ¦¢ ¦¢ mat[1][0] = E; mat[1][1] = F; mat[1][2] = G; mat[1][3] = H; ¦¢ ¦¢ mat[2][0] = I; mat[2][1] = J; mat[2][2] = K; mat[2][3] = L; ¦¢ ¦¢ ¦¢ ¦¢ ¦¢ ¦¢ ¦¢ ¦¢ ¦¢ ¦¦¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¥ À§¿Í°°ÀÌ Çà¿­ÀÇ µ¥ÀÌÅ͸¦ ´Ù·ç´Â µ¥´Â 2Â÷¿ø ¹è¿­ÀÌ °¡Àå Æí¸®ÇÑ µ¥ÀÌÅÍ ±¸Á¶°¡ µÈ´Ù. ±×¸®°í 3Â÷¿ø(ÀÔü)ÀûÀÎ ¹°Ã¼ÀÇ µ¥ÀÌÅ͸¦ °¡Áö°í ÀÖ¾î¾ßµÇ´Â ÇÁ·Î±×·¥À» §´Ù°í ÇÑ´Ù¸é ÀÌ°ÍÀº 3Â÷¿ø ¹è ¿­ÀÌ °¢ µ¥ÀÌÅÍ¿¡ Á¢±ÙÇϱ⿡ °¡Àå Æí¸®ÇÑ µ¥ÀÌÅÍ ±¸Á¶°¡ µÉ °ÍÀÌ´Ù. ´ÙÂ÷¿ø ¹è¿­À̶ó°í Çصµ ¸Þ¸ð¸®´Â ÀÏÂ÷¿øÀ̱⠶§¹®¿¡ °á±¹ ÀÏÂ÷¿ø ÇüÅ·Π¸Þ¸ð¸®¿¡ Á¸ÀçÇÏ°Ô µÇ ´Âµ¥, ¿©±â¿¡´Â Çà(row) ¿ì¼± ¹æ¹ý°ú ¿­(column) ¿ì¼± ¹æ¹ýÀÇ µÎ °¡Áö°¡ ÀÖ´Ù. ¿¹¸¦ µé¾î ia[2][3];ÀÇ °æ¿ì. ¦£¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¤ ¦¢ /* [±×¸² 1] Çà ¿ì¼±À¸·Î ¹è¿­À» ÇÒ´ç */ ¦¢ ¦¢ ---+---------+----------+----------+----------+----------+----------+--- ¦¢ ¦¢ ¸Þ¸ð¸® |ia[0][0] | ia[0][1] | ia[0][2] | ia[1][0] | ia[1][1] | ia[1][2] | ¦¢ ¦¢ ---+---------+----------+----------+----------+----------+----------+--- ¦¢ ¦¢ ¦¢ ¦¢ /* [±×¸² 2] ¿­ ¿ì¼±À¸·Î ¹è¿­À» ÇÒ´ç */ ¦¢ ¦¢ ---+---------+----------+----------+----------+----------+----------+--- ¦¢ ¦¢ ¸Þ¸ð¸® |ia[0][0] | ia[1][0] | ia[0][1] | ia[1][1] | ia[0][2] | ia[1][2] | ¦¢ ¦¢ ---+---------+----------+----------+----------+----------+----------+--- ¦¢ ¦¢ ¦¢ ¦¢ ¦¢ ¦¢ ¦¢ ¦¢ ¦¢ ¦¦¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¥ C¿¡¼­´Â Çà(row) ¿ì¼±À¸·Î ¹è¿­À» ÇÒ´çÇϱ⠶§¹®¿¡ [±×¸² 1]°ú °°ÀÌ Á¸ÀçÇÏ°Ô µÈ´Ù. Áï ¸Ç ³¡ÀÇ Ã·ÀÚ¿¡¼­ ¸Ç óÀ½ÀÇ Ã·ÀÚ°¡ º¯ÇÏ´Â ¼øÀ¸·Î °¢ ¹è¿­ÀÇ ¿ø¼ÒµéÀÌ ÇÒ´çµÇ°Ô µÈ´Ù. ±×·¯³ª C ¾ð¾î¿¡´Â ¿øÄ¢ÀûÀ¸·Î ´ÙÂ÷¿ø ¹è¿­À̶õ ¾ø´Ù. ´Ù¸¸ C¿¡¼­ ¹è¿­ÀÇ ¿ä¼Ò´Â ¹«¾ùÀÌ µÇ¾îµµ »ó°üÀÌ ¾ø´Ù. ¦£¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¤ ¦¢ int ia[3][2]; ¦¢ ¦¢ ¹è¿­ 1 --+ ¦¢ ¦¢ +---------------+ +---------------+ +---------------+ ¦¢ ¦¢ +---------------+ +---------------+ +---------------+ ¦¢ ¦¢ | ÇÑ °³ÀÇ ¹è¿­ ¿ä¼Ò¸¦ È®´ëÇØ º¸¸é ¦¢ ¦¢ ¹è¿­ 2 --+ ¡é ¦¢ ¦¢ +--------+--------+ ¹è¿­ ¿ä¼Ò ÀÚüµµ ¹è¿­·Î ÀÌ·ç¾îÁ® ÀÖ´Ù. ¦¢ ¦¢ +--------+--------+ ¦¢ ¦¢ /* Áï 2Â÷¿ø ¹è¿­Àº ¹è¿­ÀÇ ¿ä¼Ò·Î '1Â÷¿ø ¹è¿­'À» °¡Áø´Ù´Â ¸»ÀÌ µÈ´Ù */ ¦¢ ¦¢ /* ´ÙÀ½Àº ´ÙÂ÷¿ø ¹è¿­ÀÌ ¸Þ¸ð¸®¿¡ Á¸ÀçÇÏ´Â »óŸ¦ ±×¸²À¸·Î ³ªÅ¸³½ °ÍÀÌ´Ù */ ¦¢ ¦¢ --+-------+-------+-------+-------+-------+-------+-- ¦¢ ¦¢ ¸Þ¸ð¸® | | | | | | | ¦¢ ¦¢ --+-------+-------+-------+-------+-------+-------+-- ¦¢ ¦¢ [0][0] [0][1] [1][0] [1][1] [2][0] [2][1] ¦¢ ¦¢ ºÎºÐ¹è¿­ ºÎºÐ¹è¿­ ºÎºÐ¹è¿­ ¦¢ ¦¢ /* ºÎºÐ¹è¿­ÀÌ ´ÙÂ÷¿ø ¹è¿­ÀÇ ¿ä¼Ò°¡ µÈ´Ù */ ¦¢ ¦¢ ¦¢ ¦¢ ¦¢ ¦¢ ¦¢ ¦¢ ¦¢ ¦¢ ¦¢ ¦¢ ¦¢ ¦¢ ¦¢ ¦¦¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¥ ´ÙÂ÷¿ø ¹è¿­µµ ÀÏÂ÷¿ø ¹è¿­°ú °°ÀÌ ÃʱⰪÀ» ÁÙ ¼ö ÀÖ´Ù. ÀÌ °æ¿ì ¿ª½Ã auto ¸Þ¸ð¸® À¯ÇüÀº ÁÙ ¼ö ¾ø´Ù(MSC¿Í TC´Â auto À¯ÇüÀÇ ´ÙÂ÷¿ø ¹è¿­¿¡µµ ÃʱⰪÀ» ÁÙ ¼ö ÀÖµµ·Ï Çã¿ëÇÏ°í ÀÖ´Ù). ´ÙÀ½Àº ´ÙÂ÷¿ø ¹è¿­ÀÇ ÃʱâÈ­ ¿¹ÀÌ´Ù. ¦£¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¤ ¦¢ ©ç int ia[2][3] = { { 1, 2, 3 }, { 4, 5, 6 } }; ¦¢ ¦¢ ©è int ia[][3] = { 1, 2, 3, 4, 5, 6 }; ¦¢ ¦¢ ©é int ia[][] = { 1, 2, 3, 4, 5, 6 }; ¦¢ ¦¢ ©ê int ja[2][3][2] = { { {1,2},{3,4},{5,6} }, { {7,8},{9,10},{11,12} } }; ¦¢ ¦¢ ©ë int ja[][3][2] = { 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12 }; ¦¢ ¦¢ ¦¢ ¦¢ ¦¢ ¦¦¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¥ ©çÀÇ Ã¹¹ø° Áß°ýÈ£´Â ÃʱⰪ Àüü¸¦ ÀǹÌÇÑ´Ù. ±× ¾È¿¡ ´Ù½Ã µÎ °³ÀÇ Áß°ýÈ£°¡ Àִµ¥, ÀÌ´Â °¢ °¢ ia[0]À¸·Î ½ÃÀÛÇÏ´Â Çà°ú ia[1]·Î ½ÃÀÛÇÏ´Â Çà¿¡ ´ëÇÑ ÃʱⰪÀ» ÀǹÌÇÑ´Ù. Áï ÃʱⰪµµ °¢ Çະ ·Î ÁÖ°ÔµÇ¸ç °¢ ÇàÀº Áß°ýÈ£·Î ±¸ºÐÇÏ°Ô µÈ´Ù. ©è¿¡¼­´Â ¾Æ¿¹ Áß°ýÈ£ ±¸ºÐÀ» ¾ø¾Ö°í Çϳª·Î ÃʱⰪÀ» ÁÖ°í ÀÖ´Ù. ÀÌ °æ¿ì ¸Þ¸ð¸®¿¡ À§Ä¡ÇÏ´Â ¼ø¼­´ë·Î Â÷·Ê·Î ÃʱⰪÀÌ ÇÒ´çµÈ´Ù. ±×¸®°í ¸Ç óÀ½ ÷ÀÚ¸¦ »ý·«Çߴµ¥, ´Ù »ý·«ÇÒ¼ö´Â ¾ø°í ¸Ç óÀ½ ÷ÀÚ¸¸ »ý·«ÀÌ °¡´ÉÇÏ´Ù. ±×·¯³ª ©é°ú °°ÀÌ ¸ðµÎ »ý·«ÇÒ °æ¿ì ÄÄÆÄÀÏ ¿¡·¯°¡ ¹ß»ýÇÑ´Ù. ©ëÀÇ 3Â÷¿ø ¹è¿­µµ ¸¶Âù°¡Áö·Î ¸Ç óÀ½ ÷ÀÚ´Â »ý·«ÇÒ ¼ö ÀÖÀ¸³ª, ±× ¿Ü ÷ÀÚ´Â »ý·«ÇÒ ¼ö ¾ø´Ù. ´ÙÀ½Àº 3 X 3 Çà¿­ 2°³¸¦ Àоîµé¿© ÀÌÀÇ ÇÕÀ» Ãâ·ÂÇÏ´Â ÇÁ·Î±×·¥ÀÌ´Ù. void print_matrix(int M[3][3]) { int i, j; for (i = 0; i < 3; i++) { for (j = 0; j < 3; j++) printf("%d ",M[i][j]); printf("\n"); } } void read_matrix(int M[3][3]) { /* 3*3 Çà¿­À» ÀоîµéÀÌ´Â ÇÔ¼ö */ int i, j; for (i = 0; i < 3; i++) for (j = 0; j < 3; j++) scanf("%d",&M[i][j]); } main() { int A[3][3], B[3][3], C[3][3]; int i, j; printf("*** Input the first matrix(3*3) ***\n"); read_matrix(A); /* ¹è¿­ÀÇ À̸§À» ÀÎÀÚ·Î Àü´ÞÇÑ´Ù */ printf("\t## A ##\n"); print_matrix(A); printf("*** Input the second matrix(3*3) ***\n"); read_matrix(B); printf("\t## B ##\n"); print_matrix(B); for (i = 0; i < 3; i++) for (j = 0; j < 3; j++) C[i][j] = A[i][j] + B[i][j]; printf("\n*** C = A + B ***\n"); print_matrix(C); } ¦£¦¡¦¡¦¡¦¤ ¦¢ °á°ú ¦¢ ¦¦¦¡¦¡¦¡¦¥ --------------------------------------------------------------------------------- *** Input the first matrix(3*3) *** 1 2 3 4 5 6 7 8 9 ³ú ## A ## 1 2 3 4 5 6 7 8 9 *** Input the second matrix(3*3) *** 10 20 30 40 50 60 70 80 90 ³ú ## B ## 10 20 30 40 50 60 70 80 90 *** C = A + B *** 11 22 33 44 55 66 77 88 99 < ¹è¿­°ú Æ÷ÀÎÅÍ > 1Â÷¿ø ¹è¿­ÀÇ À̸§ Áß¿¡¼­ '[ ]'ºÎºÐÀ» »« ³ª¸ÓÁö´Â ¹è¿­ÀÇ Ã¹¹ø° ¿ä¼Ò¸¦ °¡¸®Å°´Â Æ÷ÀÎÅÍ »ó¼ö ÀÌ´Ù. ´ÙÀ½ ±×¸²À» º¸¸é ¦£¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¤ ¦¢ int ar[3]; ¦¢ ¦¢ --+-----+-----+-----+------ ¦¢ ¦¢ ¸Þ¸ð¸® | | | | ¦¢ ¦¢ --+-----+-----+-----+------ ¦¢ ¦¢ +----+ |ar[0] ar[1] ar[2] ¦¢ ¦¢ | --+---+ ¦¢ ¦¢ +----+ ¦¢ ¦¢ ar: intÇü Æ÷ÀÎÅÍ »ó¼ö (ar[0]ÀÇ ½ÃÀÛ¹øÁö°¡ ÀÖÀ½) ¦¢ ¦¢ ¦¢ ¦¢ ¦¢ ¦¢ ¦¢ ¦¦¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¥ arÀº intÇü Æ÷ÀÎÅÍ »ó¼öÀÌ´Ù. Áï *arÀº ar[0]ÀÌ µÇ°í, *(ar + 1)Àº ar[1]ÀÌ µÇ¸ç, *(ar + 2)´Â ar[2] ¿Í °°Àº °ªÀÌ µÈ´Ù. ´ÙÀ½Àº ÀÌ °ü°è¸¦ ±×¸²À¸·Î ³ªÅ¸³»¾ú´Ù. ¦£¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¤ ¦¢ int ar[n]; ÀÏ °æ¿ì *(ar + n)°ú ar[n]Àº ¿ÏÀüÈ÷ µ¿ÀÏÇÑ ¼ö½Ä. ¦¢ ¦¢ ¦¢ ¦¢ ar[0] ar[1] ar[2] ¦¢ ¦¢ --+--+--+--+--+--+--+--- ¦¢ ¦¢ ¸Þ¸ð¸® | | | | | | | ¦¢ ¦¢ --+--+--+--+--+--+--+--- ¦¢ ¦¢ | | +------------ (ar + 2) arÀº intÇü Æ÷ÀÎÅÍÀ̱⠶§¹®¿¡ 2¸¦ ´õÇÏ¸é ¦¢ ¦¢ +----+ | | 4¹ÙÀÌÆ®°¡ Áõ°¡Çؼ­ ar[2]ÀÇ ¹øÁö¼ö°¡ µÈ´Ù. ¦¢ ¦¢ | --+--+ +------------------ (ar + 1) arÀº intÇü Æ÷ÀÎÅÍÀ̱⠶§¹®¿¡ 1À» ´õÇÏ¸é ¦¢ ¦¢ +----+ 2¹ÙÀÌÆ®°¡ Áõ°¡Çؼ­ ar[1]ÀÇ ¹øÁö¼ö°¡ µÈ´Ù. ¦¢ ¦¢ ar: intÇü Æ÷ÀÎÅÍ »ó¼ö ¦¢ ¦¢ (ar[0]ÀÇ ½ÃÀÛ¹øÁö°¡ ÀÖÀ½) ¦¢ ¦¢ ¢Ñ ÀÌ·¸°Ô µÇ´Â °ÍÀº C¿¡¼­ÀÇ ¹è¿­Àº °¢ ¿ø¼Ò°¡ ³·Àº ÁÖ¼Ò¿¡¼­ ³ôÀº ÁÖ¼ÒÀÇ ¼ø¼­·Î ¦¢ ¦¢ Â÷°îÂ÷°î Á¸ÀçÇϱ⠶§¹®ÀÌ´Ù. ¦¢ ¦¢ ¦¢ ¦¢ ¦¢ ¦¢ ¦¢ ¦¢ ¦¢ ¦¢ ¦¢ ¦¢ ¦¢ ¦¦¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¥ ÇÑ °¡Áö ÁÖÀÇÇÒ °ÍÀº ¹è¿­ÀÇ À̸§Àº »ó¼öÀÌÁö º¯¼ö°¡ ¾Æ´Ï¶ó´Â °ÍÀÌ´Ù. µû¶ó¼­ ar + 1Àº »ç¿ëÇÒ ¼ö ÀÖÁö¸¸ ++arÀº »ç¿ëÇÒ ¼ö ¾ø´Ù. ´ÙÀ½Àº Æ÷ÀÎÅ͸¦ ÀÌ¿ëÇÏ¿© ¹è¿­À» »ç¿ëÇÏ´Â ¿¹ÀÌ´Ù. #include void main() { static int ia[] = { 2, 5, 7, 9, 11 }; static char ca[] = "abcdef"; int *ip, *jp; int t; char *cp; ip = ia; while (ip <= ia + 4) /* ia ¹è¿­ÀÇ °¢ ¿ø¼ÒÀÇ °ªÀÌ 1¾¿ Áõ°¡ÇÏ¿© 3, 6, 8, 10, 12 */ ++*ip++; /* °¡ µÈ´Ù */ ip = ia; /* ip´Â ia ¹è¿­ÀÇ Ã¹¹ø° ¿ø¼Ò¸¦ °¡¸®Å°°í ÀÖ´Ù */ jp = ip + 4; /* jp´Â ia ¹è¿­ÀÇ ¸Ç ¸¶Áö¸· ¿ø¼Ò¸¦ °¡¸®Å°°í ÀÖ´Ù */ while (ip < jp) { t = *ip; *ip++ = *jp; /* ipÀÇ °ªÀº Áõ°¡½ÃÅ°°í jpÀÇ °ªÀº °¨¼Ò½ÃÅ°¸é¼­ µÎ Æ÷ÀÎÅÍ°¡ */ *jp-- = t; /* ÁÖ¼Ò¸¦ °®°í ÀÖ´Â µ¥ÀÌÅ͸¦ ¼­·Î ±³È¯ÇÏ°í ÀÖ´Ù */ } for (ip = ia; ip <= ia + 4; ip++) printf("%d ",*ip); putchar('\n'); cp = ca; /* cp´Â ca ¹è¿­ÀÇ Ã¹¹ø° ¿ø¼Ò¸¦ °¡¸®Å°°í ÀÖ´Ù */ while (*cp) putchar(*cp++); putchar('\n'); cp = ca; while (*cp++) /* Æ÷ÀÎÅÍ´Â 2¾¿ Áõ°¡ÇÏ°Ô µÇ¸ç */ putchar(++*cp++); /* ca ¹è¿­ÀÇ ¿ø¼ÒÀÇ °ªµµ 1 Áõ°¡ÇÏ°Ô µÈ´Ù */ putchar('\n'); for (cp = ca; *cp; ) putchar(*cp++); putchar('\n'); } ¦£¦¡¦¡¦¡¦¤ ¦¢ °á°ú ¦¢ ¦¦¦¡¦¡¦¡¦¥ --------------------------------------------------------------------------------- 12 10 8 6 3 abcdef ceg acceeg main() { int ia[] = { 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 }; int *ip, i; ip = ia+9; /* ¹è¿­ÀÇ À̸§Àº ±× ¹è¿­ÀÇ ¸Ç óÀ½ º¯¼öÀÇ ÁÖ¼Ò¿Í °°´Ù */ for (i = 0; i < 10; i++) /* Áï ia+9´Â &ia[9]¿Í °°´Ù */ printf(" ia[%d] = %2d\n",9-i,*(ip-i)); } ¦£¦¡¦¡¦¡¦¤ ¦¢ °á°ú ¦¢ ¦¦¦¡¦¡¦¡¦¥ --------------------------------------------------------------------------------- ia[9] = 10 ia[8] = 9 ia[7] = 8 ia[6] = 7 ia[5] = 6 ia[4] = 5 ia[3] = 4 ia[2] = 3 ia[1] = 2 ia[0] = 1 ¡Ø ÀÏÂ÷¿ø ¹è¿­ÀÇ ÀÎÀÚ Àü´Þ ¹è¿­ ÀÚü¸¦ ÀÎÀÚ·Î Àü´ÞÇÏ°íÀÚ ÇÒ ¶§¿¡´Â ´ÙÀ½°ú °°ÀÌ ±× ¹è¿­ÀÇ À̸§À» ³Ñ°ÜÁÖ¸é µÈ´Ù. ¦£¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¤ ¦¢ int ia[7] = { 1, 3, 5, 7, 9, 12, 17 }; ¦¢ ¦¢ : ¦¢ ¦¢ func(ia); ¦¢ ¦¢ ¦¢ ¦¦¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¥ ±×·¯¸é ¹Þ´Â ÂÊ¿¡¼­´Â ´ÙÀ½°ú °°ÀÌ ¦£¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¤ ¦¢ func(int x[7]) { ¦¢ ¦¢ : ¦¢ ¦¦¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¥ ÇÏ¸é µÈ´Ù. ±×·±µ¥ ³Ñ¾î ¿À´Â°Ô ¹Ù·Î iaÀÌ°í, ÀÌ´Â ia[0]ÀÇ ÁÖ¼Ò¸¦ °®´Â Æ÷ÀÎÅÍ »ó¼öÀ̱⠶§¹® ¿¡ ´ÙÀ½°ú °°ÀÌ ¾Æ¿¹ Æ÷ÀÎÅÍ º¯¼ö·Î ¹Þ´Â °ÍÀÌ´Ù. ¦£¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¤ ¦¢ func(int *x) { ¦¢ ¦¢ : ¦¢ ¦¦¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¥ ¶Ç ´ÙÀ½°ú °°ÀÌ ¹è¿­°ú ºñ½ÁÇÏ°Ô ¹Þ¾Æµµ µÈ´Ù. ¦£¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¤ ¦¢ func(int x[]) { ¦¢ ¦¢ : ¦¢ ¦¦¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¥ À§¿¡¼­´Â x°¡ ¹è¿­À̶ó´Â °Í¸¸ ³ªÅ¸³»°í ÀÖ°í ±× Å©±â´Â ¾ó¸¶ÀÎÁö ³ªÅ¸³»Áö ¾Ê°í ÀÖ´Ù. ½ÇÁ¦·Î ¹Þ´Â ÂÊ¿¡¼­´Â À̸¦ ¾Ë ÇÊ¿ä°¡ ¾ø´Âµ¥, ¹è¿­ÀÇ ½ÃÀÛ ÁÖ¼Ò¸¸ ³Ñ¾î¿À±â ¶§¹®ÀÌ´Ù. ¹è¿­ÀÇ °æ¿ì ±× ÀÚü°¡ Æ÷ÀÎÅÍÀ̱⠶§¹®¿¡ °á±¹ ÂüÁ¶¿¡ ÀÇÇÑ È£Ãâ·Î ³Ñ°Ü ÁØ °ÍÀÌ µÈ´Ù. µû¶ó¼­ ¹Þ´Â ÂÊ¿¡¼­´Â ºÎ¸¥ ÂÊÀÇ ¹è¿­À» ¸¶À½´ë·Î º¯°æÇÒ ¼ö ÀÖ´Ù. ¿ÀÈ÷·Á ÀÌ °æ¿ì¿¡´Â °ª¿¡ ÀÇÇÑ È£Ãâ ÀÌ ºÒ°¡´ÉÇÏ°í, ±»ÀÌ ÇÏ·Á¸é »õ·Î¿î ¹è¿­À» ¸¸µé¾î ¶È°°ÀÌ º¹»çÇÏ¿© ³Ñ°Ü ÁÖ¾î¾ß ÇÑ´Ù. ´ÙÀ½Àº ¹è¿­ÀÇ ÀÎÀÚ Àü´Þ¿¡ °üÇÑ ÇÁ·Î±×·¥ÀÌ´Ù. void main(void) { int a[10] = { 23, 75, 12, 50, 328, 432, 58, 68, 33, 30 }; int i; for (i = 0; i < 10; i++) printf(" %d ",a[i]); printf("\n"); printf(" Maximum with max_item_a() = %d\n",max_item_a(a)); /* È£ÃâÇÏ´Â ºÎºÐÀÌ µÑ´Ù */ printf(" Maximum with max_item_b() = %d\n",max_item_b(a)); /* ¹è¿­ÀÇ Ã¹¹ø° ¿ä¼Ò¸¦ */ } /* °¡¸®Å°´Â Æ÷ÀÎÅÍ »ó¼ö */ int max_item_a(int item[]) { /* ¹è¿­À̶ó´Â °³³äÀ¸·Î °è»êÇÑ ÇÔ¼ö */ int i, max = 0; for (i = 0; i < 10; i++) if (max < item[i]) /* item[i]°¡ maxº¸´Ù Å©¸é */ max = item[i]; /* max¿¡´Ù item[i]¸¦ ³Ö´Â´Ù */ return max; } int max_item_b(int *item) { /* Æ÷ÀÎÅͶó´Â °³³äÀ¸·Î °è»êÇÑ ÇÔ¼ö */ int i, max = 0; for (i = 0; i < 10; i++) if (max < *(item+i)) /* *(item+i)°¡ maxº¸´Ù Å©¸é */ max = *(item+i); /* max¿¡´Ù *(item+i)¸¦ ³Ö´Â´Ù */ return max; } ¦£¦¡¦¡¦¡¦¤ ¦¢ °á°ú ¦¢ ¦¦¦¡¦¡¦¡¦¥ --------------------------------------------------------------------------------- 23 75 12 50 328 432 58 68 33 30 Maximum with max_item_a() = 432 Maximum with max_item_b() = 432 ´ÙÀ½Àº °¢ ÁÙÀÇ µ¥ÀÌÅ͸¦ Àоîµé¿© °¢ ÁÙ¸¶´Ù °Å²Ù·Î Ãâ·ÂÇÏ´Â ÇÁ·Î±×·¥ÀÌ´Ù. #include void main() { char line[250]; char *cp; int l; void reverse(char *, int); while (l = get_line(line)) { /* ÇÑÁÙÀ» Àоî */ reverse(line, l); /* À̸¦ °Å²Ù·Î ¸¸µç µÚ */ for (cp = line; cp < line + l; cp++) /* À̸¦ Ãâ·Â */ putchar(*cp); } } int get_line(char l[]) { /* ÇÑ ÁÙÀ» ÀÐÀ½ */ int len = 0; while ((*l = getchar()) != EOF) { ++len; if (*l++ == '\n') return (len); } *l = '\n'; /* ¶óÀÎÀÇ ¸Ç ³¡¿¡ Ç×»ó '\n'ÀÌ ÀÖµµ·Ï ÇÑ´Ù */ return (len); } void reverse(char *line, int len) { /* ¶óÀÎÀ» °Å²Ù·Î ÇÔ */ char *cp = line + len - 2; /* ¸Ç ³¡¿¡ Ç×»ó '\n'ÀÌ ÀÖ°í ÀÌ´Â ¿òÁ÷¿©¼­´Â ¾ÈµÇ¹Ç·Î */ int t; /* cpÀÇ °ªÀÌ line+len-1ÀÌ ¾Æ´Ñ line+len-2°¡ µÈ´Ù */ while (line < cp) { t = *line; /* óÀ½°ú ³¡À» ¼­·Î ±³È¯ÇÏ°í Çϳª¾¿ °¡±îÀÌ À̵¿ */ *line++ = *cp; *cp-- = t; } } ¦£¦¡¦¡¦¡¦¤ ¦¢ °á°ú ¦¢ ¦¦¦¡¦¡¦¡¦¥ --------------------------------------------------------------------------------- C:\TC>reverse < reverse.c ³ú ¡Ø ½ºÆ®¸µ ½ºÆ®¸µ ÀÚü°¡ ¹è¿­À̹ǷΠÀ̸¦ ´Ù·ç°íÀÚ ÇÒ ¶§¿¡´Â ´ç¿¬È÷ char À¯ÇüÀÇ Æ÷ÀÎÅͳª ¹è¿­À» »ç¿ë ÇÏ´Â °ÍÀÌ ÁÁÀºµ¥, ƯÈ÷ char À¯ÇüÀÇ Æ÷ÀÎÅ͸¦ »ç¿ëÇÒ °æ¿ì¿¡´Â ´ÙÀ½°ú °°ÀÌ ¹Ù·Î ½ºÆ®¸µÀ» ÇÒ ´çÇÒ ¼ö ÀÖ´Ù. ¦£¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¤ ¦¢ char *cp; ¦¢ ¦¢ cp = "test"; ¦¢ ¦¦¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¥ ÀÌ °æ¿ì cp´Â µÚÀÇ ½ºÆ®¸µÀÇ Ã³À½ ½ÃÀÛ À§Ä¡¸¦ °ªÀ¸·Î °®°Ô µÈ´Ù. ¹Ý¸é¿¡ ¹è¿­¿¡ ½ºÆ®¸µÀ» ÇÒ´ç ÇÏ°íÀÚ ÇÒ ¶§¿¡´Â ´ÙÀ½°ú °°ÀÌ Çϳª¾¿ º¹»çÇÏ¿©¾ß ÇÑ´Ù. ¦£¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¤ ¦¢ char ca[20]; ¦¢ ¦¢ char *cp1 = ca; ¦¢ ¦¢ char *cp2 = "This is test"; ¦¢ ¦¢ while (*cp1++ = *cp2++); ¦¢ ¦¢ ¦¢ ¦¦¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¥ ±×·¯³ª ½ºÆ®¸µÀ» ÀоîµéÀÌ°íÀÚ ÇÒ ¶§¿¡´Â ¹è¿­À» »ç¿ëÇÏ¿©¾ß ÇÑ´Ù. Áï À̸¦ ±â¾ïÇÒ¸¸ ÇÑ ÃæºÐÇÑ °ø°£À» Áö´Ñ ¹è¿­À» ¹Ì¸® ¼±¾ðÇÑ ´ÙÀ½¿¡ ¾ÕÀÇ get_line()°ú °°Àº ÇÔ¼ö¸¦ ÅëÇØ ÀÐ¾î µéÀÌ¸é µÈ´Ù( ÀÌ °æ¿ì¿¡´Â Æ÷ÀÎÅÍ º¯¼ö´Â »ç¿ëÇÒ ¼ö ¾ø´Âµ¥, Æ÷ÀÎÅÍ º¯¼ö´Â ÀÐ¾î µéÀÎ ½ºÆ®¸µÀ» ÀúÀåÇÒ °ø°£À» °®°í ÀÖÁö ¾Ê±â ¶§¹®ÀÌ´Ù). ¾ÕÀÇ get_line() ÇÔ¼ö¿Í °°ÀÌ ½ºÆ®¸µÀ» ÀÐ¾î µéÀÌ´Â ÇÔ¼ö¸¦ ÀÛ¼ºÇÏ¿© »ç¿ëÇÒ ¼öµµ ÀÖÁö¸¸ scanf¸¦ »ç¿ëÇÒ ¼öµµ ÀÖ´Ù. À̶§ ¹Ù·Î %s Æ÷¸ËÀ» »ç¿ëÇϴµ¥, ¿¹¸¦ µé¾î ca ¶õ ¹è¿­¿¡ ½ºÆ®¸µÀ» ÀоîµéÀÌ°íÀÚ ÇÒ ¶§¿¡´Â ´ÙÀ½°ú °°ÀÌ »ç¿ëÇÏ¸é µÈ´Ù. ¦£¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¤ ¦¢ char ca[80]; ¦¢ ¦¢ scanf("%s",ca); /* ca ÀÚü°¡ ÁÖ¼ÒÀ̱⠶§¹®¿¡ & ¸¦ ºÙÀÏ ÇÊ¿ä°¡ ¾ø´Ù */ ¦¢ ¦¦¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¥ scanf´Â ½ºÆ®¸µÀ» ÀÐ¾î µé¿© À̸¦ ca¿¡ ÀúÀåÇÏ°Ô µÇ´Âµ¥, ¿©¹é ¹®ÀÚ(Áï ³ª '\t', '\n'°ú °° Àº)°¡ ³ªÅ¸³¯ ¶§±îÁö ÀоîµéÀÌ°Ô µÈ´Ù. µû¶ó¼­ ´ÙÀ½°ú °°ÀÌ ÀÔ·ÂÇÏ¸é ¦£¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¤ ¦¢ This is test ¦¢ ¦¦¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¥ ½ÇÁ¦ ca¿¡´Â This¸¸ ÀԷµDZ⠶§¹®¿¡ ÁÖÀÇÇÏ¿©¾ß ÇÑ´Ù. ¸¸¾à ÇÑ ÁÙÀÇ ½ºÆ®¸µÀ» ¸ðµÎ ÀÔ·ÂÇÏ°íÀÚ ÇÒ ¶§¿¡´Â ´ÙÀ½°ú °°ÀÌ »ç¿ëÇÏ¸é µÈ´Ù. ¦£¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¤ ¦¢ char ca[80]; ¦¢ ¦¢ scanf("%[^\n]s",ca); ¦¢ ¦¦¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¥ À§ÀÇ °æ¿ì [^\n]ÀÌ ´õ Ãß°¡ µÇ¾ú´Âµ¥, ÀÌÀÇ Àǹ̴ '\n'ÀÌ ³ª¿Ã ¶§±îÁöÀÌ´Ù. ±×·¯³ª ÀÌ °æ¿ì ÀÔ ·Â½Ã ¹®Á¦°¡ ¹ß»ýÇÒ ¼ÒÁö°¡ ¸¹±â ¶§¹®¿¡ ¾ÕÀÇ get_line()ÇÔ¼ö¿Í °°ÀÌ ÀÚ½ÅÀÌ ½º½º·Î ÇÔ¼ö¸¦ ¸¸µé ¾î »ç¿ëÇÏ´Â °ÍÀÌ ÁÁ´Ù. ´ÙÀ½Àº ½ºÆ®¸µ 󸮿¡ °üÇÑ ¸î °¡Áö ¿¹ÀÌ´Ù. #include /* getchar()¸¦ »ç¿ëÇϱâ À§ÇØ ¼±¾ð */ main() { char com[20], name[20], pass[20]; scanf("%[^,]",com); /* ','ÀÌ ÀÐÇôÁú ¶§±îÁö */ getchar(); /* , ¸¦ Àоî¹ö¸² */ scanf("%[^:]",name); /* ':'ÀÌ ÀÐÇôÁú ¶§±îÁö */ getchar(); /* : ¸¦ Àоî¹ö¸² */ scanf("%[^\n]s",pass); /* Å°°¡ ÀÔ·ÂµÉ ¶§±îÁö */ getchar(); /* '\n'¸¦ Àоî¹ö¸² */ printf("Computer : %s\n",com); printf("Name : %s\n",name); printf("Password : %s\n",pass); } ¦£¦¡¦¡¦¡¦¤ ¦¢ °á°ú ¦¢ ¦¦¦¡¦¡¦¡¦¥ --------------------------------------------------------------------------------- 486DX2-80,GRACE:1684 ³ú Computer : 486DX2-80 Name : GRACE Password : 1684 ´ÙÀ½Àº device"¶õ ¸ðµç ½ºÆ®¸µÀ» DEVICEHIGH"·Î º¯È¯ÇÏ¿© Ãâ·ÂÇÏ´Â ÇÁ·Î±×·¥ÀÌ´Ù. #include void main() { char data[6]; char c; char *cp = "evice"; /* ùÀÚ¸¦ Á¦¿ÜÇÑ ³ª¸ÓÁö¸¦ ãÀ» ½ºÆ®¸µ */ int n; data[5] = '\0'; /* ½ºÆ®¸µÀ¸·Î ¸¸µê */ while ((c = getchar()) != EOF) { if (c == 'd') { /* d·Î ½ÃÀÛÇÏ¸é °°À» °¡´É¼ºÀÌ ÀÖÀ½ */ n = nget_line(data, 5); /* ÃÖ°í 5ÀÚ¸¸ ÀÐÀ½ */ if (n == 5 && compstr(data, cp)) /* cp¸¦ »ç¿ëÇÏÁö ¾Ê°í ¹Ù·Î compstr(data, "evice")·Î ÇÒ ¼ö ÀÖ´Ù */ printf("DEVICEHIGH"); /* device ´ë½Å Ãâ·Â */ else printf("d%s",data); /* device°¡ ¾Æ´Ï¹Ç·Î ±×´ë·Î Ãâ·Â */ } else putchar(c); } } int nget_line(char *c, int n) { /* ÃÖ´ë nÀÚÀÇ ¹®ÀÚµéÀ» Àоî¹ö¸² */ int i = 0; while ((*c++ = getchar()) != EOF) if (++i == n) break; return (i); } int compstr(char *s1, char *s2) { /* µÎ °³ÀÇ ½ºÆ®¸µÀÌ °°ÀºÁö ºñ±³ */ while (*s1 == *s2) { if (*s1 == '\0') return (1); ++s1; ++s2; } return (0); } ¦£¦¡¦¡¦¡¦¤ ¦¢ °á°ú ¦¢ ¦¦¦¡¦¡¦¡¦¥ --------------------------------------------------------------------------------- C:\TC>change < \windows\system.ini | more ³ú ´ÙÂ÷¿ø ¹è¿­ÀÇ °æ¿ì¿¡µµ '[ ]'ºÎºÐÀ» »« ³ª¸ÓÁö À̸§Àº ¸ðµÎ Æ÷ÀÎÅÍ »ó¼öÀÌ´Ù. ¦£¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¤ ¦¢ int ar[2][3]; /* 1°³ÀÇ °ªÀº ¸Þ¸ð¸® 2¹ÙÀÌÆ®¸¦ Â÷ÁöÇÑ´Ù */ ¦¢ ¦¢ ¦¢ ¦¢ ar ------------- ar[0] ------------- +---------------+ ¦¢ ¦¢ | ar[0][0] | ¦¢ ¦¢ ar[0]+1 ----------- +---------------+ ¦¢ ¦¢ | ar[0][1] | ¦¢ ¦¢ ar[0]+2 ----------- +---------------+ ¦¢ ¦¢ | ar[0][2] | ¦¢ ¦¢ ar+1 ----------- ar[1] ------------- +---------------+ ¦¢ ¦¢ | ar[1][0] | ¦¢ ¦¢ ar[1]+1 ----------- +---------------+ ¦¢ ¦¢ | ar[1][1] | ¦¢ ¦¢ ar[1]+2 ----------- +---------------+ ¦¢ ¦¢ | ar[1][2] | ¦¢ ¦¢ +---------------+ ¦¢ ¦¢ ¦¢ ¦¢ ¦¢ ¦¢ ¦¢ ¦¢ ¦¢ ¦¢ ¦¢ ¦¢ ¦¢ ¦¢ ¦¢ ¦¦¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¥ arÀº ¹°·Ð Æ÷ÀÎÅÍ »ó¼öÀÏ »Ó¸¸ ¾Æ´Ï¶ó ar[0], ar[1]µµ ¿ª½Ã Æ÷ÀÎÅÍ »ó¼ö°¡ µÈ´Ù. ±×·±µ¥ ar[0]Àº ¹Ù·Î ar[0][0]ÀÇ ÁÖ¼Ò¸¦ °®´Â int * ÇüÅÂÀÇ Æ÷ÀÎÅÍ »ó¼öÀε¥ ¹ÝÇØ arÀÇ °ªÀº ar[0][0]ÀÇ ÁÖ¼ÒÀ̸鼭 ar[0] Çà Àüü¸¦ °¡¸®Å°´Â Æ÷ÀÎÅÍ »ó¼ö°¡ µÈ´Ù. ar[0]Àº ar[0][0]À» °¡¸®Å°±â ¶§¹®¿¡ ar[0]+1À» Çϸé ar[0][0]ÀÇ ´ÙÀ½ ¿ø¼Ò, Áï ar[0][1]ÀÌ µÇÁö¸¸ arÀº ar[0]À¸·Î ½ÃÀÛÇÏ´Â Çà Àüü¸¦ °¡¸®Å°±â ¶§¹®¿¡ ar+1À» Çϸé ar[1] ÇàÀÌ µÇ¾î °ªÀº ar+3*sizeof(int)°¡ µÈ´Ù(¿©±â¼­ 3Àº ÇÑ ÇàÀÇ ¿ø¼ÒÀÇ °¹¼öÀÌ´Ù). ´ÙÀ½ ÇÁ·Î±×·¥À» À̸¦ Àß ³ªÅ¸³»°í ÀÖ´Ù. void main() { static int ar[2][3] = { 1, 2, 3, 4, 5, 6 }; int i, j; for (i = 0; i < 2; i++) for (j = 0; j < 3; j++) printf("Address of ar[%d][%d] = %u\n",i,j,&ar[i][j]); printf("ar = %u, *ar = %u, **ar = %u\n",ar,*ar,**ar); printf("ar+1 = %u, *(ar+1) = %u, **(ar+1) = %u\n",ar+1,*(ar+1),**(ar+1)); printf("ar[0] = %u, *ar[0] = %u\n",ar[0],*ar[0]); printf("ar[0]+1 = %u, *(ar[0]+1) = %u\n",ar[0]+1,*(ar[0]+1)); printf("ar[1] = %u, *ar[1] = %u\n",ar[1],*ar[1]); printf("ar[1]+1 = %u, *(ar[1]+1) = %u\n",ar[1]+1,*(ar[1]+1)); } ¦£¦¡¦¡¦¡¦¤ ¦¢ °á°ú ¦¢ ¦¦¦¡¦¡¦¡¦¥ --------------------------------------------------------------------------------- Address of ar[0][0] = 404 Address of ar[0][1] = 406 Address of ar[0][2] = 408 Address of ar[1][0] = 410 Address of ar[1][1] = 412 Address of ar[1][2] = 414 ar = 404, *ar = 404, **ar = 1 ar+1 = 410, *(ar+1) = 410, **(ar+1) = 4 ar[0] = 404, *ar[0] = 1 ar[0]+1 = 406, *(ar[0]+1) = 2 ar[1] = 410, *ar[1] = 4 ar[1]+1 = 412, *(ar[1]+1) = 5 ´ÙÂ÷¿ø ¹è¿­¿¡¼­ ÇÑ °³ÀÇ ¹è¿­ ¿ä¼Ò¸¦ ÂüÁ¶Çϴµ¥´Â ´ÙÀ½°ú °°ÀÌ ¿©·¯ °¡Áö ¹æ¹ýÀ¸·Î ÂüÁ¶ÇÒ ¼ö ÀÖ´Ù. ¦£¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¤ ¦¢ int ar[l][m][n]; /* 3Â÷¿ø ¹è¿­À» Á¤ÀÇÇßÀ» °æ¿ì */ ¦¢ ¦¢ ar[l][m][n] *(ar[l][m]+n) *(*(ar[l]+m)+n) *(*(*(ar+l)+m)+n) ¦¢ ¦¢ (*(ar+l))[m][n] (*(*(ar+l)+m))[n] ¦¢ ¦¢ ¦¢ ¦¦¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¥ ¡Ø ´ÙÂ÷¿ø ¹è¿­ÀÇ ÀÎÀÚ Àü´Þ 1Â÷¿ø ¹è¿­°ú ¸¶Âù°¡Áö·Î ¹è¿­ÀÇ À̸§¸¸ Àü´ÞÇÏ°Ô µÇ¸ç, ¹Þ´Â ÂÊ¿¡¼­´Â Æ÷ÀÎÅÍ À¯ÇüÀ¸·Î ¹Þ°Ô µÈ´Ù. ¿¹¸¦ µé¾î ´ÙÀ½°ú °°ÀÌ Àü´ÞÇÑ °æ¿ì. ¦£¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¤ ¦¢ char ca[2][3]; ¦¢ ¦¢ : ¦¢ ¦¢ f1(ca); ¦¢ ¦¢ ¦¢ ¦¦¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¥ f1ÂÊ¿¡¼­´Â ´ÙÀ½ ¼Â Áß Çϳª·Î ¹ÞÀ» ¼ö ÀÖ´Ù. ¦£¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¤ ¦¢ f1(char ca[2][3]) { ¦¢ ¦¢ : ¦¢ ¦¢ ¦¢ ¦¢ f1(char ca[][3]) { /* ÃʱⰪÀÇ °æ¿ì¿Í °°ÀÌ ¸Ç óÀ½ÀÇ Ã·ÀÚ¸¸ »ý·«ÇÒ ¼ö ÀÖ´Ù */ ¦¢ ¦¢ : ¦¢ ¦¢ ¦¢ ¦¢ f1(char (*ca)[3]) { /* ca°¡ 3°³ÀÇ ¿ø¼Ò·Î ÀÌ·ç¾îÁø Çà ÀÚü¸¦ °¡¸®Å°¹Ç·Î */ ¦¢ ¦¢ : ¦¢ ¦¢ ¦¢ ¦¢ ¦¢ ¦¢ ¦¢ ¦¦¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¥ ƯÈ÷ char À¯ÇüÀÇ 2Â÷¿ø ¹è¿­Àº ¸¹ÀÌ ÀÌ¿ëµÇ´Âµ¥, ½ºÆ®¸µÀÇ ¹è¿­ÀÌ ¹Ù·Î char À¯ÇüÀÇ 2Â÷¿ø ¹è ¿­ÀÌ µÇ±â ¶§¹®ÀÌ´Ù. 3Â÷¿ø ¹è¿­ÀÇ °æ¿ìµµ ¸¶Âù°¡ÁöÀ̸ç, ´ÙÀ½°ú °°ÀÌ È£ÃâÇÏ¿´À» ¶§. ¦£¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¤ ¦¢ int ar[2][3][4]; ¦¢ ¦¢ : ¦¢ ¦¢ f2(ar); ¦¢ ¦¢ ¦¢ ¦¦¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¥ f2¿¡¼­´Â ´ÙÀ½ ¼Â ÁßÀÇ Çϳª·Î ¹ÞÀ» ¼ö ÀÖ´Ù. ¦£¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¤ ¦¢ f2(int ar[2][3][4]) { ¦¢ ¦¢ : ¦¢ ¦¢ ¦¢ ¦¢ f2(int ar[][3][4]) { ¦¢ ¦¢ : ¦¢ ¦¢ ¦¢ ¦¢ f2(int (*ar)[3][4]) { ¦¢ ¦¢ : ¦¢ ¦¢ ¦¢ ¦¢ ¦¢ ¦¢ ¦¢ ¦¦¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¥ ´ÙÀ½Àº ÀÔ·ÂÇÑ µ¥ÀÌÅ͸¦ ´Ü¾î ´ÜÀ§·Î ¾ËÆĺª ¼øÀ¸·Î Á¤·ÄÇÏ´Â ÇÁ·Î±×·¥À¸·Î, °¢ ´Ü¾îÀÇ ±æÀÌ´Â 30ÀÚ À̳»·Î °¡Á¤ÇÏ¸ç ´Ü¾îÀÇ ±¸ºÐÀº ³ª \t', '\n'À¸·Î ÇÏ°í ¾ËÆĺª ÀÌ¿ÜÀÇ ´Ù¸¥ ±ÛÀÚµéÀº ASCIIÄÚµå ¼øÀ¸·Î Á¤·ÄÇÏ°í ÀÖ´Ù. #include #include void main() { static char word[100][30]; char (*cp1)[30] = word; /* 30°³ÀÇ ¿ø¼Ò·Î ±¸¼ºµÈ char À¯ÇüÀÇ ÀÏÂ÷¿ø ¹è¿­À» °¡¸®Å°´Â Æ÷ÀÎÅÍ°¡ µÈ´Ù. Áï ÀÌ cp1ÀÇ °ªÀ» 1 Áõ°¡½ÃÅ°¸é char À¯Çü 30°³ÀÇ Å©±â ¸¸Å­ Áõ°¡ÇÏ°Ô µÇ¸ç, ÀÌ´Â word¿Í °°´Ù. µû¶ó¼­ cp1 = word;¿Í °°ÀÌ ÇÒ´çÇÒ ¼ö ÀÖ°Ô µÈ´Ù */ char (*cp2)[30]; char t[30]; int n = 0; while (get_word(*cp1++) && ++n < 100); /* ´Ü¾î¸¦ 100°³ ÀÌÇÏ·Î ÀÐÀ½ */ for (cp1 = word; cp1 < word + n - 1; cp1++) /* ´Ü¾î¸¦ Á¤·Ä */ for (cp2 = cp1 + 1; cp2 < word + n; cp2++) if (strcmp(*cp1, *cp2) > 0) { /* strcmp ÇÔ¼öÀÇ ¿øÇü int strcmp(s1, s2); const char *s1 ºñ±³ÇÒ ¹®ÀÚ¿­ const char *s2 ºñ±³ÇÒ ¹®ÀÚ¿­ s1 ¹®ÀÚ¿­°ú s2 ¹®ÀÚ¿­À» ºñ±³Çؼ­ s1 < s2 À̸é 0º¸´Ù ÀÛÀº °ªÀ» ¹ÝȯÇÏ°í, s1 == s2 À̸é 0À» ¹ÝȯÇÑ´Ù. ±×¸®°í s1 > s2 À̸é 0º¸´Ù Å« °ªÀ» ¹ÝȯÇÑ´Ù. ¹®ÀÚÀÇ ASCII Äڵ带 °¡Áö°í ¹®ÀÚ¿­ÀÇ Ã³À½ ¹®ÀÚºÎÅÍ ½ÃÀÛÇÏ¿© ´ÙÀ½ ¹®ÀÚ·Î Â÷·Ê·Î À̾îÁ® °Ë»öÇϴµ¥ ´ëÀÀ¹®ÀÚ°¡ ´Ù¸£µçÁö ¹®ÀÚ¿­ÀÇ ³¡À» ¸¸³ªµçÁö Çϸé Áß´ÜÇÑ´Ù(´ë¹®ÀÚ¿Í ¼Ò¹®ÀÚ´Â ±¸º°ÇÏÁö ¾Ê´Â´Ù) */ strcpy(t, *cp1); /* strcpy ÇÔ¼öÀÇ ¿øÇü */ strcpy(*cp1, *cp2); /* char *strcpy(dest, src); */ strcpy(*cp2, t); /* char *dest -> ¹®ÀÚ¿­À» º¹»çÇÒ Ç༱Áö */ } /* const char *src -> º¹»çÇÒ ¹®ÀÚ¿­ */ for (cp1 = word; cp1 < word + n; cp1++) /* Á¤·ÄµÈ ´Ü¾î¸¦ Ãâ·Â */ printf("%s\n",*cp1); } int get_word(char *s) { int l = 0; while ((*s = getchar()) != EOF) { if (!l && (*s == ' ' || *s == '\t' || *s == '\n')) /* óÀ½ ¿Í Àº ¹«½Ã */ continue; if (l == 29 || *s == ' ' || *s == '\t' || *s == '\n') { /* ÀÐÀº °ÍÀÌ 30ÀÚ°¡ µÇ°Å³ª ´Ü¾î°¡ ³¡³ª¸é */ if (l == 29) /* ÀÐÀº °ÍÀÌ 30ÀÚ¸é */ ungetc(*s, stdin); /* ÀÐÀº °ÍÀ» Ãë¼ÒÇÏ°í ½ºÆ®¸µÀ» ¸¸µê */ *s = '\0'; return (1); } ++s; ++l; } if (l) { /* EOF¸¦ ¸¸³ª°í ÀÐÀº °ÍÀÌ ÀÖÀ¸¸é */ *s = '\0'; return (1); } else return (0); } ¦£¦¡¦¡¦¡¦¤ ¦¢ °á°ú ¦¢ ¦¦¦¡¦¡¦¡¦¥ --------------------------------------------------------------------------------- C:\TC>test < test.c ³ú < Æ÷ÀÎÅÍ ¹è¿­ > Æ÷ÀÎÅÍ ÀÚüµµ ÇϳªÀÇ µ¥ÀÌÅÍÀ̹ǷΠÀÌ¿¡ ´ëÇÑ ¹è¿­µµ ¼±¾ðÇÒ ¼ö ÀÖ´Ù. ¦£¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¤ ¦¢ int *ar[3]; ¦¢ ¦¢ --+--+--+--+--+--+--+--- ¦¢ ¦¢ ¸Þ¸ð¸® | | | | | | | ¦¢ ¦¢ --+--+--+--+--+--+--+--- ¦¢ ¦¢ | | +------------ Æ÷ÀÎÅÍ º¯¼ö *ar[2] ¦¢ ¦¢ | +------------------ Æ÷ÀÎÅÍ º¯¼ö *ar[1] ¦¢ ¦¢ +------------------------ Æ÷ÀÎÅÍ º¯¼ö *ar[0] ¦¢ ¦¢ ¦¢ ¦¢ ¦¢ ¦¢ ¦¢ ¦¦¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¥ ÀÌ°ÍÀº int À¯ÇüÀÇ ÁÖ¼Ò¸¦ °®´Â Æ÷ÀÎÅÍ 3°³·Î ±¸¼ºµÈ ¹è¿­À» Á¤ÀÇÇÑ °ÍÀÌ µÈ´Ù. Áï À̸§ÀÌ ar[0], ar[1], ar[2]ÀÎ Æ÷ÀÎÅÍ º¯¼ö 3°³¸¦ Á¤ÀÇÇß´Ù°í »ý°¢ÇÏ¸é µÈ´Ù. ±×¸®°í arÀº ´Ù¸¥ ÀÏÂ÷¿ø ¹è¿­°ú °° ÀÌ ÀÌ ¹è¿­ÀÇ Ã¹¹ø° ¿ø¼ÒÀÇ ÁÖ¼Ò¸¦ °®°í ÀÖ´Â Æ÷ÀÎÅÍ°¡ µÇ¹Ç·Î ar = &ar[0]ÀÌ µÈ´Ù. ±×·¯¸é *ar Àº ´ç¿¬È÷ ar[0]ÀÌ µÇ¸ç **arÀº ar[0]ÀÌ °¡¸®Å°°í ÀÖ´Â Á¤¼ö °ªÀÌ µÈ´Ù. ¸¶Âù°¡Áö·Î int ia[10][5]; ÀÇ °æ¿ì¿¡µµ **ia´Â int À¯ÇüÀÇ Á¤¼ö°¡ µÇ±â ¶§¹®¿¡, À§ÀÇ Æ÷ÀÎÅÍ ¹è¿­Àº int À¯ÇüÀÇ 2Â÷¿ø ¹è¿­°ú À¯»çÇÑ Á¡ÀÌ ¸¹´Ù´Â °ÍÀ» ¾Ë ¼ö ÀÖ´Ù. Æ÷ÀÎÅÍ ¹è¿­Àº ÀϹÝÀûÀ¸·Î ¹®ÀÚ¿­ ¹è¿­À» ¼±¾ðÇÒ ¶§ »ç¿ëÇÑ´Ù. void main(void) { char string[][20] = { "Lee seung wook", "Oh jung pyo", "Kwon oh jin" }; printf(" Total used memory : %d\n",sizeof(string)); } ¦£¦¡¦¡¦¡¦¤ ¦¢ °á°ú ¦¢ ¦¦¦¡¦¡¦¡¦¥ --------------------------------------------------------------------------------- Total used memory : 60 ´ÙÀ½ ±×¸²Àº À§ ÇÁ·Î±×·¥ÀÇ ÃÑ ¸Þ¸ð¸® »ç¿ë·®ÀÌ 60¹ÙÀÌÆ® ÀÓÀ» º¸¿©ÁÖ°í ÀÖ´Ù. ¦£¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¤ ¦¢ string[0] ---+ ¦¢ ¦¢ --+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-- ¦¢ ¦¢ ¸Þ¸ð¸® |L|e|e| |s|e|u|n|g| |w|o|o|k|0| | | | | | ¢Ñ 20 * 3 = 60 ¹ÙÀÌÆ® ¦¢ ¦¢ --+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-- ¦¢ ¦¢ string[1] => |O|h| |j|u|n|g| |p|y|o|0| | | | | | | | | ¢Ñ ¹®ÀÚ¿­ »ó¼ö µÚ¿¡´Â Ç×»ó ¦¢ ¦¢ --+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-- \0 ÀÌ ºÙ´Â´Ù. ¦¢ ¦¢ string[2] => |K|w|o|n| |o|h| |j|i|n|0| | | | | | | | | ¢Ñ ºó°ø¹éÀº ¸Þ¸ð¸® ³¶ºñ ¦¢ ¦¢ --+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-- ¦¢ ¦¢ +---------------------------------------+----- 20¹ÙÀÌÆ® ¦¢ ¦¢ ¦¢ ¦¢ ¦¢ ¦¢ ¦¢ ¦¢ ¦¢ ¦¦¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¥ À§ ¸Þ¸ð¸® »óŸ¦ º¸¸é ¾Ë ¼ö ÀÖµíÀÌ ¹®ÀÚ¿­ »ó¼öÀÇ Å©±â¿¡ °ü°è¾øÀÌ 2Â÷¿ø ¹è¿­·Î ºÎºÐ ¹è¿­ÀÇ Å©±â¸¦ 20À¸·Î ¼±¾ðÇ߱⠶§¹®¿¡ ¹®ÀÚ¿­ »ó¼ö·Î ä¿öÁöÁö ¾ÊÀº ºÎºÐÀº ¸Þ¸ð¸®ÀÇ ³¶ºñ¸¦ °¡Á®¿Â´Ù. ´ÙÀ½Àº ¶È °°Àº ¿¹Á¦¸¦ Æ÷ÀÎÅÍ ¹è¿­À» ÀÌ¿ëÇؼ­ ¸¸µç °ÍÀÌ´Ù. #include /* strlen ÇÔ¼ö¸¦ »ç¿ëÇϱâ À§ÇØ ¼±¾ð */ void main(void) { char *string[] = { "Lee seung wook", "Oh jung pyo", "Kwon oh jin" }; int ps, sum = 0, i; ps = sizeof(string); printf(" String pointer size : %d\n",ps); for (i = 0; i < 3; i++) /* strlenÀº ¹®ÀÚ¿­ÀÇ ±æÀ̸¦ ±¸ÇÏ´Â ÇÔ¼ö·Î */ sum += strlen(string[i]) + 1; /* NULL ¹®ÀÚ´Â Æ÷ÇÔµÇÁö ¾Ê´Â´Ù. ±×·¡¼­ + 1 */ printf(" String constant size : %d\n",sum); printf(" Total used memory : %d\n",ps+sum); } ¦£¦¡¦¡¦¡¦¤ ¦¢ °á°ú ¦¢ ¦¦¦¡¦¡¦¡¦¥ --------------------------------------------------------------------------------- String pointer size : 6 String constant size : 39 Total used memory : 45 À§ ÇÁ·Î±×·¥ÀÇ ¸Þ¸ð¸® ¼Òºñ¸¦ ±×¸²À¸·Î ³ªÅ¸³»¸é ´ÙÀ½°ú °°´Ù ¦£¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¤ ¦¢ +-----+ +--------- -+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ ¦¢ ¦¢ string[0] | ---+------------+ |L|e|e| |s|e|u|n|g| |w|o|o|k|0| ¦¢ ¦¢ +-----+ +--------- -+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ ¦¢ ¦¢ string[1] | ---+------------+ |O|h| |j|u|n|g| |p|y|o|0| ¦¢ ¦¢ +-----+ +--------- -+-+-+-+-+-+-+-+-+-+-+-+-+ ¦¢ ¦¢ string[2] | ---+------------+ |K|w|o|n| |o|h| |j|i|n|0| ¦¢ ¦¢ +-----+ -+-+-+-+-+-+-+-+-+-+-+-+-+ ¦¢ ¦¢ Æ÷ÀÎÅÍ º¯¼ö°¡ ÀÖ´Â ¸Þ¸ð¸®(6¹ÙÀÌÆ®) ¢Ñ ¹®ÀÚ¿­ »ó¼ö µÚ¿¡´Â Ç×»ó \0 ÀÌ ºÙ´Â´Ù. ¦¢ ¦¢ ¢Ñ 39 + 6 = 45 ¹ÙÀÌÆ® ¦¢ ¦¢ ¦¢ ¦¢ ¦¢ ¦¢ ¦¢ ¦¢ ¦¢ ¦¦¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¥ ÀÌ¿Í °°ÀÌ ¹®ÀÚ¿­ »ó¼ö¸¦ ¸Þ¸ð¸®ÀÇ ³¶ºñ¾øÀÌ ¼±¾ðÇÒ ¶§ Æ÷ÀÎÅÍ ¹è¿­ÀÌ ¾²ÀδÙ. ´ÙÀ½Àº »ç¶÷ À̸§À» Á¤·ÄÇÏ´Â ÇÁ·Î±×·¥À¸·Î Æ÷ÀÎÅÍ ¹è¿­À» ÀÌ¿ëÇÑ °ÍÀÌ´Ù. #include /* ¹®ÀÚ¿­À» ºñ±³ÇÏ´Â ÇÔ¼ö strcmp ¸¦ »ç¿ëÇϱâ À§ÇØ ¼±¾ð */ void sort_name(char *ptr[]) { /* Æ÷ÀÎÅÍ ¹è¿­À» ÀÌ¿ëÇÏ¿© ¹®ÀÚ¿­»ó¼ö¸¦ Á¤·ÄÇÑ´Ù */ int i, j; char *tem; for (i = 0; i < 6; i++) for (j = i + 1; j < 7; j++) if (strcmp(ptr[i], ptr[j]) > 0) { /* strcmp´Â µÎ °³ÀÇ ¹®ÀÚ¿­À» ºñ±³ÇÏ´Â ÇÔ¼ö */ tem = ptr[i]; ptr[i] = ptr[j]; ptr[j] = tem; } } void list(char *ptr[]) { /* Æ÷ÀÎÅÍ ¹è¿­·Î ÁöÁ¤µÈ ¹®ÀÚ¿­ »ó¼ö¸¦ È­¸é¿¡ */ int i; /* Ç¥½ÃÇÏ´Â ÇÔ¼ö */ for (i = 0; i < 7; i++) printf(" %s\n",ptr[i]); } void main(void) { char *name[] = { "Howard Ashman", "Alan Menken", "Brian W. Kernighan", "Dennis M. Ritchie", "Lawrence H. Miller", "Al Kelley", "Ira Pohl" }; char *n_ptr[7]; int i; for (i = 0; i < 7; i++) /* »õ·Î¿î Æ÷ÀÎÅÍ ¹è¿­¿¡ ÃʱâÈ­ ½ÃÅ´ */ n_ptr[i] = name[i]; printf(" Unsorted list ----------\n"); list(n_ptr); sort_name(n_ptr); printf("\n"); printf(" Sorted list ----------\n"); list(n_ptr); } ¦£¦¡¦¡¦¡¦¤ ¦¢ °á°ú ¦¢ ¦¦¦¡¦¡¦¡¦¥ --------------------------------------------------------------------------------- Unsorted list ---------- Howard Ashman Alan Menken Brian W. Kernighan Dennis M. Ritchie Lawrence H. Miller Al Kelley Ira Pohl Sorted list ---------- Al Kelley Alan Menken Brian W. Kernighan Dennis M. Ritchie Howard Ashman Ira Pohl Lawrence H. Miller ´ÙÀ½Àº ¸î ³âµµÀÇ ¸î ¹ø° ÀÏÀ» ÀÔ·ÂÀ¸·Î ¹Þ¾Æ¼­ ±× ÇØÀÇ ¿ù, ÀÏ·Î Ãâ·ÂÇÏ´Â ÇÁ·Î±×·¥ÀÌ´Ù. void main() { static char *month[] = { "January", "February", "March", "April", "May", "June", "July", "August", "September", "October", "November", "December" }; static int mno[] = { 31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31 }; int year, days; int i; printf("Year? "); scanf("%d",&year); printf("Days? "); scanf("%d",&days); mno[1] += ((year % 4 == 0 && year % 100 != 0) || year % 400 == 0); for (i = 0; days > mno[i]; days -= mno[i++]); printf("The date is: %s, %d\n",month[i],days); } ¦£¦¡¦¡¦¡¦¤ ¦¢ °á°ú ¦¢ ¦¦¦¡¦¡¦¡¦¥ --------------------------------------------------------------------------------- Year? 1995 ³ú Days? 303 ³ú The date is: October, 30 < ÀÌÁß Æ÷ÀÎÅÍ > ÀÌÁß Æ÷ÀÎÅÍ´Â Æ÷ÀÎÅÍÀÇ Æ÷ÀÎÅ͸¦ ¸»ÇÑ´Ù. Æ÷ÀÎÅÍ º¯¼ö´Â ¾î¶² º¯¼ö¸¦ °¡¸®Å°´Â ¹øÁö¸¦ ÀúÀåÇÏ ´Â º¯¼öÀÌ´Ù. ±×¸®°í Æ÷ÀÎÅÍÀÇ Æ÷ÀÎÅÍ´Â Æ÷ÀÎÅÍ º¯¼öÀÇ ¹øÁö¸¦ ±â¾ïÇÏ´Â º¯¼öÀÌ´Ù. ÀÌ °ü°è¸¦ ±× ¸²À¸·Î Ç¥ÇöÇÏ¸é ´ÙÀ½°ú °°´Ù. ¦£¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¤ ¦¢ ¸Þ¸ð¸® ¸Þ¸ð¸® ¸Þ¸ð¸® ¦¢ ¦¢ +------+ +------+ +------+ ¦¢ ¦¢ | ----+-------> | ----+-------->| | ¦¢ ¦¢ +------+ +------+ +------+ ¦¢ ¦¢ ÀÌÁß Æ÷ÀÎÅÍ º¯¼ö Æ÷ÀÎÅÍ º¯¼ö Á¤¼öÇü º¯¼ö ¦¢ ¦¢ ¦¢ ¦¢ ¦¢ ¦¦¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¥ ÀÌÁß Æ÷ÀÎÅ͸¦ Á¤ÀÇÇÏ´Â ¹æ¹ýÀº ÀÏ¹Ý Æ÷ÀÎÅ͸¦ Á¤ÀÇÇÒ ¶§Ã³·³ ÇÏ°í '*'¸¦ Çѹø ´õ ½áÁÖ¸é µÈ´Ù. ¦£¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¤ ¦¢ int **dptr ¦¢ ¦¦¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¥ ÀÌ·¸°Ô Á¤ÀÇÇÏ°í ³ª¸é 'dptr'Àº ÀÌÁß Æ÷ÀÎÅÍ º¯¼ö, '*dptr'Àº Æ÷ÀÎÅÍ »ó¼ö, '**dptr'Àº Á¤¼öÀÇ ÀÇ ¹Ì¸¦ °¡Áø´Ù. ´ÙÀ½Àº ÀÌÁß Æ÷ÀÎÅÍÀÇ »ç¿ë¿¹ÀÌ´Ù. void main(void) { int **dptr, *ptr, i; i = 10; ptr = &i; dptr = &ptr; printf(" i = %4d, *ptr = %4d, **dptr = %4d\n",i,*ptr,**dptr); printf(" &i = %4p, ptr = %4p, *dptr = %4p\n",&i,ptr,*dptr); printf("&ptr = %4p, dptr = %4p, &dptr = %4p\n",&ptr,dptr,&dptr); } ¦£¦¡¦¡¦¡¦¤ ¦¢ °á°ú ¦¢ ¦¦¦¡¦¡¦¡¦¥ --------------------------------------------------------------------------------- i = 10, *ptr = 10, **dptr = 10 &i = FFD2, ptr = FFD2, *dptr = FFD2 &ptr = FFD0, dptr = FFD0, &dptr = FFCE Æ÷ÀÎÅÍ ¹è¿­¿¡¼­ ¹è¿­ À̸§Àº Æ÷ÀÎÅ͸¦ °¡¸®Å°´Â Æ÷ÀÎÅÍÀ̱⠶§¹®¿¡ ÀÌÁß Æ÷ÀÎÅÍ »ó¼ö¶ó°í »ý°¢ Çصµ µÈ´Ù. ÀÌ °ü°è¸¦ ±×¸²À¸·Î Ç¥ÇöÇÏ¸é ´ÙÀ½°ú °°´Ù. ¦£¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¤ ¦¢ char *str[3]; ·Î Á¤ÀÇÇؼ­ ÃʱâÈ­ Çß´Ù. ¦¢ ¦¢ +----+ ¸Þ¸ð¸® ¦¢ ¦¢ | --+--->+-----+ str[0] +--------------------+ ¦¢ ¦¢ +----+ | ---+------------> | ù¹ø° ¹®ÀÚ¿­ »ó¼ö | ¦¢ ¦¢ str +-----+ +--------------------+ ¦¢ ¦¢ ÀÌÁß Æ÷ÀÎÅÍ | | ¦¢ ¦¢ +-----+ str[1] +--------------------+ ¦¢ ¦¢ | ---+------------> | µÎ¹ø° ¹®ÀÚ¿­ »ó¼ö | ¦¢ ¦¢ +-----+ +--------------------+ ¦¢ ¦¢ | | ¦¢ ¦¢ +-----+ str[2] +--------------------+ ¦¢ ¦¢ | ---+------------> | ¼¼¹ø° ¹®ÀÚ¿­ »ó¼ö | ¦¢ ¦¢ +-----+ +--------------------+ ¦¢ ¦¢ | | ¦¢ ¦¢ ¦¢ ¦¢ ¦¢ ¦¢ ¦¢ ¦¢ ¦¢ ¦¢ ¦¢ ¦¢ ¦¢ ¦¦¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¥ ÀÌ·¯ÇÑ ÀÌÀ¯¶§¹®¿¡ ´ÙÀ½°ú °°Àº Çö»óÀÌ ÀϾ´Ù. ¦£¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¤ ¦¢ *str == str[0] ¦¢ ¦¢ *(str + 1) == str[1] ¦¢ ¦¢ *(str + 2) == str[2] ¦¢ ¦¢ ¦¢ ¦¦¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¥ ÀÌ°ÍÀº °¢°¢ÀÇ ¹®ÀÚ¿­À» °¡¸®Å°´Â Æ÷ÀÎÅÍ º¯¼ö·Î½á ¾î´À °÷¿¡ °®´Ù³öµµ °°Àº °ªÀÌ ³ª¿Â´Ù. ¶Ç ¹®ÀÚ¿­ »ó¼öÀÇ ¹®ÀÚ ÇϳªÇϳª¸¦ ÁöÁ¤ÇÒ ¼öµµ ÀÖ´Ù. ¦£¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¤ ¦¢ **str == str[0][0] /* ¢Ñ *(*(str + n) + m) ... == str[n][m] ... */ ¦¢ ¦¢ *(*(str + 1)) == str[1][0] ¦¢ ¦¢ *(*(str + 2)) == str[2][0] ¦¢ ¦¢ *(*str + 1) == str[0][1] ¦¢ ¦¢ *(*(str + 1) + 1) == str[1][1] ¦¢ ¦¢ *(*(str + 2) + 1) == str[2][1] ¦¢ ¦¢ ¦¢ ¦¢ ¦¢ ¦¦¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¥ ´ÙÀ½Àº ÅؽºÆ®¸¦ ÁÙ ´ÜÀ§·Î Á¤·ÄÇÏ´Â ÇÁ·Î±×·¥À¸·Î, Àüü ÅؽºÆ®ÀÇ ±æÀÌ´Â 3000ÀÚ¸¦ ³ÑÁö ¾Ê´Â ´Ù°í °¡Á¤ÇÑ´Ù. #include #include void main() { static char l[3000]; /* ÅؽºÆ®ÀÇ ÃÖ´ë Å©±â´Â 3000ÀÚ */ static char *cp[400]; /* °¢ ¶óÀÎÀÇ ½ÃÀÛ À§Ä¡¸¦ ±â¾ïÇÏ´Â Æ÷ÀÎÅÍ ¹è¿­ */ char **cpp = cp; char **cp1, **cp2; char *t; int n = 0; int len; while (len = get_line(*cpp++ = l + n)) /* °¢ ¶óÀÎÀ» Àоî ÀÌÀÇ ½ÃÀÛ À§Ä¡¸¦ ±â¾ï */ n += len; for (cp1 = cp; cp1 < cpp - 1; cp1++) /* Á¤·Ä */ for (cp2 = cp1 + 1; cp2 < cpp; cp2++) if (strcmp(*cp1, *cp2) > 0) { t = *cp2; *cp2 = *cp1; *cp1 = t; } for (cp1 = cp; cp1 < cpp; cp1++) printf("%s",*cp1); } int get_line(char *l) { /* ÇÑ ÁÙÀ» ÀоîµéÀÓ */ char c; int i = 0; while ((*l = getchar()) != EOF) if (++i && *l++ == '\n') { *l = '\0'; return (i + 1); } if (i) { *l++ = '\n'; *l = '\0'; return (i + 2); } return (0); } ¦£¦¡¦¡¦¡¦¤ ¦¢ °á°ú ¦¢ ¦¦¦¡¦¡¦¡¦¥ --------------------------------------------------------------------------------- C:\TC>textsort < testsort.c ³ú < main ÇÔ¼ö¿Í ÀÎÀÚ > DOS ÇÁ·ÒÇÁÆ®°¡ º¸ÀÌ´Â »óÅ¿¡¼­ ¾î¶² ÇÁ·Î±×·¥À» ½ÇÇà½ÃÅ°±â À§Çؼ­´Â ±× ÇÁ·Î±×·¥ÀÇ È­ÀÏ À̸§À» Ä¡°í¼­ Å°¸¦ ´©¸£¸é ½ÇÇàµÇ´Â °ÍÀ» ¾Ë°í ÀÖÀ» °ÍÀÌ´Ù. ±×¸®°í ¾î¶² ÇÁ·Î±×·¥Àº ÀÎÀÚ°¡ ÀÖ´Ù´Â °Íµµ ¾Ë°í ÀÖÀ» °ÍÀÌ´Ù. ¿¹¸¦ µé¾î¼­ xcopy¶ó´Â DOS ÇÁ·Î±×·¥Àº ÀÎÀÚ°¡ 2°³ ÀÌ°Å ³ª 1°³ÀÌ´Ù. ¦£¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¤ ¦¢ C:\DOS>xcopy *.* a:/p ¦¢ ¦¢ | | +------ µÎ¹ø° ÀÎÀÚ ¦¢ ¦¢ | +---------- ù¹ø° ÀÎÀÚ ¦¢ ¦¢ +--------------- ÇÁ·Î±×·¥ À̸§ ¦¢ ¦¢ ¦¢ ¦¦¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¥ À§¿Í °°ÀÌ ÀÎÀÚ¸¦ ¹Þ¾Æ µéÀÌ´Â ºÎºÐÀ» ÇÁ·Î±×·¥»ó¿¡¼­ ¸¸µé¾î¾ß ÇÑ´Ù. Áö±Ý±îÁö mainÀ̶õ ÇÔ¼ö¸¦ »ç¿ëÇÒ ¶§ ÀÎÀÚ¾øÀÌ ¹Ù·Î main() ¿Í °°ÀÌ »ç¿ëÇØ ¿Ô´Ù. ±×·±µ¥ ½ÇÁ¦ ·Î main¿¡µµ ÀÎÀÚ°¡ Àִµ¥, ´ÙÀ½°ú °°Àº ÇüÅÂÀÇ ÀÎÀÚµéÀÌ ³Ñ¾î¿À°Ô µÈ´Ù. ¦£¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¤ ¦¢ int main(int argc, char **argv, char **env) ¦¢ ¦¦¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¥ À§ÀÇ ¿øÇü¿¡¼­ ÀÌÁß Æ÷ÀÎÅÍ´Â ´ÙÀ½°ú °°ÀÌ ½áµµ µÈ´Ù. ¦£¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¤ ¦¢ int main(int argc, char *argv[], char *env[]) ¦¢ ¦¦¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¥ ÀÌ ¶§ ÀÎÀÚÀÇ ¼ø¼­´Â ¹Ù²î¾î¼­´Â ¾ÈµÇÁö¸¸ µÚ¿¡¼­ºÎÅÍ Â÷·Ê´ë·Î »ý·«ÇÒ ¼ö ÀÖ´Ù. °¢ ÀÎÀÚÀÇ ³»¿ëÀº ´ÙÀ½°ú °°´Ù. ¢Ñ int argc; ÀÌ º¯¼ö´Â Command¶óÀο¡¼­ ¾²¿©Áø ÀÎÀÚÀÇ °¹¼ö¸¦ Á¤¼ö(int)°ªÀ¸·Î °¡Áö°í ÀÖ´Ù. ÀÎÀÚÀÇ ±¸ºÐ Àº space, tab °ú °°Àº ±âÈ£·Î ±¸ºÐÇÑ´Ù. ÀÌ ¶§ Á¤¼ö °ªÀº ÀÎÀÚ°¡ ¾øÀ¸¸é 1, 1°³¸é 2, ... ¿Í °°Àº °ªÀ» °¡Áø´Ù. ¢Ñ char *argv[]; ÀÌ°ÍÀº Æ÷ÀÎÅÍ ¹è¿­·Î Command¶óÀο¡¼­ ÀÔ·ÂÇÑ ÀÎÀÚµéÀÌ Á¸ÀçÇÏ´Â ¸Þ¸ð¸®ÀÇ ¹øÁö¼ö¸¦ Â÷·Ê´ë ·Î ±â¾ïÇÏ°í ÀÖ´Ù. ÀÌ ¶§ °¢ Æ÷ÀÎÅÍ ¹è¿­Àº ´ÙÀ½°ú °°´Ù. ¦£¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¤ ¦¢ argv[0] - Æнº¸í°ú ½ÇÇàÆÄÀÏ À̸§. ¦¢ ¦¢ argv[1] - ù¹ø° ÀÎÀÚÀÇ ³»¿ë. ¦¢ ¦¢ argv[2] - µÎ¹ø° ÀÎÀÚÀÇ ³»¿ë. ¦¢ ¦¢ : ¦¢ ¦¢ argv[n] - n¹ø° ÀÎÀÚÀÇ ³»¿ë. ¦¢ ¦¢ ¦¢ ¦¢ ¦¢ ¦¦¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¥ ´ÙÀ½Àº Command¶óÀο¡¼­ ÀÎÀÚ¸¦ ¹Þ¾Æ¼­ ¸ðµç ÀÎÀÚ¸¦ È­¸é¿¡ Ãâ·Â ÇØÁÖ´Â ÇÁ·Î±×·¥ÀÌ´Ù. int main(int argc, char *argv[]) { int i; printf(" Program name %s\n",argv[0]); if (argc < 2) printf(" Argument is not exist !\n"); else for (i = 1; i < argc; i++) printf(" Argument %d is %s\n",i,argv[i]); } ¦£¦¡¦¡¦¡¦¤ ¦¢ °á°ú ¦¢ ¦¦¦¡¦¡¦¡¦¥ --------------------------------------------------------------------------------- C:\TC>noname ³ú À̶ó°í ½ÇÇàÇßÀ» °æ¿ì Program name C:\TC\NONAME.EXE Argument is not exist ! C:\TC>noname *.* a:/v ³ú À̶ó°í ½ÇÇàÇßÀ» °æ¿ì Program name C:\TC\NONAME.EXE Argument 1 is *.* Argument 2 is a:/v ´ÙÀ½ ÇÁ·Î±×·¥Àº ÅؽºÆ®ÀÇ ¾î¶² ½ºÆ®¸µ s1À» ¸ðµÎ s2·Î ¹Ù²Ù¾î Ãâ·ÂÇÏ´Â °ÍÀ¸·Î, ¾Æ·¡¿Í °°ÀÌ »ç¿ëÇÑ´Ù°í °¡Á¤ÇÑ´Ù. ¦£¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¤ ¦¢ C:\TC>strsub s1 s2 ¦¢ ¦¦¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¥ #include #include main(int argc, char *argv[]) { char data[80]; char c; int n = 0; int sl1; if (argc != 3) { /* ÀÎÀÚ¸¦ 2°³ ÁÖÁö ¾ÊÀ¸¸é À߸ø »ç¿ëÇÑ °ÍÀÓ */ printf("Usage: %s string1 string2\n",*argv); return (1); } sl1 = strlen(argv[1]); /* ¹Ù²Ü ½ºÆ®¸µÀÇ ÃÖ´ë ±æÀÌ´Â 80ÀÚ */ if (sl1 > 80) { printf("%s is too long(exceeding 80 characters).\n",argv[1]); return (2); } data[sl1 - 1] = '\0'; while ((c = getchar()) != EOF) { if (c == *argv[1]) { /* óÀ½ ±ÛÀÚ°¡ °°À¸¸é */ if (sl1 - 1) n = nget_line(data, sl1 - 1); /* ³ª¸ÓÁö¸¦ ÀÐ¾î ºñ±³ */ if (n == sl1 - 1 && !strcmp(data, argv[1] + 1)) printf("%s",argv[2]); else printf("%c%s",*argv[1],data); } else putchar(c); } } int nget_line(char *c, int n) { int i = 0; while ((*c++ = getchar()) != EOF) if (++i == n) break; return (i); } ¦£¦¡¦¡¦¡¦¤ ¦¢ °á°ú ¦¢ ¦¦¦¡¦¡¦¡¦¥ --------------------------------------------------------------------------------- C:\TC>strsub ³ú À̶ó°í ½ÇÇàÇßÀ» °æ¿ì Usage: C:\TC\STRSUB.EXE string1 string2 C:\TC>strsub DEVICEHIGH DEVICE < \config.sys ³ú ¹Ý¸é¿¡ 3¹ø° ÀÎÀÚÀÎ env´Â ȯ°æ º¯¼öÀÇ °ªµéÀÌ X=Y ÇüÅÂÀÇ ½ºÆ®¸µÀ¸·Î ³Ñ¾î¿À°Ô µÈ´Ù(ȯ°æ º¯ ¼ö´Â DOSÀÇ °æ¿ì¿¡´Â SET ¸í·É¿¡ ÀÇÇØ °ªÀÌ Á¤ÀÇµÈ º¯¼öµéÀ» ÀǹÌÇÑ´Ù). argc ó·³ °¹¼ö¸¦ ¾Ë ·ÁÁÖ´Â ÀÎÀÚ°¡ ¾øÀ¸¹Ç·Î ÀÌ°ÍÀÇ °¹¼ö´Â ¾Ë ¼ö°¡ ¾ø°í, envÀÇ °ªÀ» Áõ°¡½ÃÄÑ ³ª°¡´Ù°¡ ÀÌ °ªÀÌ ³Î Æ÷ÀÎÅÍ°¡ µÇ¸é ¹Ù·Î ÀÌ°ÍÀÌ µ¥ÀÌÅÍÀÇ ³¡À̶ó´Â °ÍÀ» ¾Ë ¼ö ÀÖ´Ù. ´ÙÀ½Àº env·Î ³Ñ¾î¿À´Â °ªµéÀ» ¸ðµÎ Ãâ·ÂÇÏ´Â ÇÁ·Î±×·¥ÀÌ´Ù. void main(int argc, char *argv[], char *env[]) { int i = 0; while (*env) printf("env[%d] = %s\n",i++,*env++); } ¦£¦¡¦¡¦¡¦¤ ¦¢ °á°ú ¦¢ ¦¦¦¡¦¡¦¡¦¥ --------------------------------------------------------------------------------- env[0] = COMSPEC=C:\COMMAND.COM env[1] = PROMPT=$P$G env[2] = TEMP=C:\NU\TEMP env[3] = PATH=C:\DOS;C:\NU;C:\TC;C:\C600\BINB;C:\C600\BIN env[4] = LIB=C:\C600\LIB env[5] = INCLUDE=C:\C600\INCLUDE env[6] = HELPFILES=C:\C600\HELP\*.HLP env[7] = INIT=C:\C600\INIT < voidÇü Æ÷ÀÎÅÍ > 'void'ÀÇ Àǹ̴ 3°¡Áö·Î ºÐ·ùÇÒ ¼ö ÀÖ´Ù. ù° ÇÔ¼ö¸í ¾Õ¿¡ ºÙ¿©¼­ ¾²ÀÎ °æ¿ì, ÀÌ ¶§´Â "ÀÌ ÇÔ¼ö ´Â return°ªÀÌ ¾ø´Ù."¶ó°í ¾Ë¸®´Â Ç¥½ÃÀÌ´Ù. µÑ° ÇÔ¼ö¸í µÚÀÇ Çü½ÄÀÎÀÚ ÀÚ¸®¿¡ ¾²ÀÎ °æ¿ì, ÀÌ ¶§ ´Â "ÀÌ ÇÔ¼ö¿¡´Â Çü½Ä ÀÎÀÚ°¡ ¾ø´Ù."¶ó´Â Ç¥½ÃÀÌ´Ù. ±×¸®°í ¸¶Áö¸·ÀÇ Æ÷ÀÎÅͷνáÀÇ ÀǹÌÀÌ´Ù. Æ÷ÀÎÅÍ º¯¼ö°¡ ¹«½¼ÇüÀ̳Ŀ¡ µû¶ó °¡¸®Å°´Â º¯¼ö°¡ Ʋ·ÁÁö´Âµ¥, ¶§¿¡ µû¶ó ÇüÀ» ¹«½ÃÇÏ°í ÀÏÀ» ó¸® ÇØ¾ß ÇÒ ¶§°¡ »ý±æ °ÍÀÌ´Ù. ÀÌ ¶§¿¡´Â Æ÷ÀÎÅ͸¦ ¼±¾ðÇÒ ¶§ °¡¸®Å°´Â ÇüÀÌ ¹«¾ùÀÌµç µÈ´Ù°í ¼±¾ðÀ» ÇØ¾ß Çϴµ¥, ÀÌ ¶§ »ç¿ëÇÏ´Â °ÍÀÌ 'void'ÀÌ°í ÀÌ Æ÷ÀÎÅ͸¦ voidÇü Æ÷ÀÎÅͶó ºÎ¸¥´Ù. ¦£¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¤ ¦¢ void *ptr; ¦¢ ¦¦¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¥ ¾î¶°ÇÑ Æ÷ÀÎÅ͵µ voidÇü Æ÷ÀÎÅÍ¿¡ Çü º¯È¯ ¿¬»êÀÚÀÇ µµ¿ò¾øÀÌ ´ëÀÔÀÌ °¡´ÉÇÏ´Ù. ÇÏÁö¸¸ ¹Ý´ë·Î voidÇü Æ÷ÀÎÅÍ´Â Çü º¯È¯ ¿¬»êÀÚ¾øÀÌ °áÄÚ ´Ù¸¥ Æ÷ÀÎÅÍ º¯¼ö¿¡ ´ëÀÔÇÒ ¼ö ¾ø´Ù. ¹°·Ð ++, --¶ÇÇÑ Çü º¯È¯ ¿¬»êÀÚ ¾øÀÌ´Â ºÒ°¡´ÉÇÏ´Ù. voidÇü Æ÷ÀÎÅÍ´Â ±×°ÍÀÌ °¡¸®Å°°í ÀÖ´Â ´ë»óÀÇ Å©±â¸¦ ¸ð¸£ ±â ¶§¹®ÀÌ´Ù. ´ÙÀ½Àº voidÇü Æ÷ÀÎÅ͸¦ »ç¿ëÇؼ­ charÇü ¹è¿­À» intÇü ¹è¿­·Î º¹»çÇÏ´Â ÇÁ·Î±×·¥ÀÌ´Ù. void array_cpy(void *scr, void *des, int n) { int i; for (i = 0; i < n; i++) *((char *)des + i) = *((char *)scr + i); } void main(void) { char scr[6] = { 'A', '\0', 'B', '\0', 'C', '\0' }; int des[3], i; for (i = 0; i < 6; i++) printf(" Character array scr[%d] = %c\n",i,scr[i]); printf("\n"); array_cpy(scr, des, 6); for (i = 0; i < 3; i++) printf(" Integer array des[%d] = %d\n",i,des[i]); } ¦£¦¡¦¡¦¡¦¤ ¦¢ °á°ú ¦¢ ¦¦¦¡¦¡¦¡¦¥ --------------------------------------------------------------------------------- Character array scr[0] = A Character array scr[1] = Character array scr[2] = B Character array scr[3] = Character array scr[4] = C Character array scr[5] = Integer array des[0] = 65 Integer array des[1] = 66 Integer array des[2] = 67 charÇü ¹è¿­ÀÌ Â÷·Ê´ë·Î 'A','\0'ÀÌ intÇü ¹è¿­·Î º¹»çµÇ¸é ¸Þ¸ð¸® ¾È¿¡´Â 'A'¿¡ ÇØ´çÇÏ´Â ASCII ÄÚµå °ªÀÌ ¸ÕÀú µé¾î°¡°í ±× ´ÙÀ½¿¡ '\0'ÀÌ µé¾î°£´Ù. ÀÌ °ªÀ» intÇüÀ¸·Î ÀÐÀ¸¸é ¿ª ¿öµå ¹æ½ÄÀÌ¹Ç ·Î '65'¸¸ °ªÀ¸·Î ³ªÅ¸³­´Ù. < ÇÔ¼ö Æ÷ÀÎÅÍ > Æ÷ÀÎÅÍ´Â ¹«½¼ Æ÷ÀÎÅÍÀ̵çÁö ¸Þ¸ð¸®¿¡¼­ 2¹ÙÀÌÆ®¸¦ Â÷ÁöÇÑ´Ù. ±×¸®°í ±× Æ÷ÀÎÅ͸¦ Á¤¼öÇü Æ÷ÀÎ ÅÍ ¶Ç´Â ¹è¿­ Æ÷ÀÎÅͶó°í ºÎ¸£´Â °ÍÀº ±× Æ÷ÀÎÅÍ°¡ °¡¸®Å°°í ÀÖ´Â µ¥ÀÌÅÍ°¡ ¾î¶°ÇÑ À¯ÇüÀÇ µ¥ÀÌ ÅÍÀΰ¡¿¡ ´Þ·Á ÀÖ´Ù. ±×·±µ¥ CÀÇ Æ÷ÀÎÅÍ°¡ ³Ê¹«³ªµµ °­·ÂÇÑ ³ª¸ÓÁö ÇϳªÀÇ ÇÔ¼ö±îÁö °¡¸®Å³ ¼ö ÀÖÀ» »Ó¸¸ ¾Æ´Ï¶ó, °¡ ¸®Å² ÇÔ¼ö¸¦ ½ÇÇà±îÁö ½Ãų ¼ö ÀÖ´Ù. ¾Æ·¡¿¡ ÇÔ¼ö Æ÷ÀÎÅ͸¦ ¼±¾ðÇÏ´Â ¹æ¹ýÀ» ³ªÅ¸³»¾ú´Ù. ¦£¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¤ ¦¢ ÇÔ¼öÀÇ µ¥ÀÌÅÍ À¯Çü (*Æ÷ÀÎÅÍ À̸§)(°¡¸®Å³ ÇÔ¼öÀÇ ¸Å°³º¯¼ö ¸®½ºÆ®); ¦¢ ¦¢ ¦¢ ¦¢ ÇÔ¼öÀÇ µ¥ÀÌÅÍ À¯Çü - ÇÔ¼ö Æ÷ÀÎÅÍ°¡ °¡¸®Å°´Â ÇÔ¼öÀÇ µÇµ¹¸®´Â °ª(return value)ÀÌ´Ù. ¦¢ ¦¢ ÇÔ¼ö¸¦ Á¤ÀÇÇÒ ¶§ ÇÔ¼ö¸í ¾Õ¿¡ ¾²´Â µ¥ÀÌÅÍ À¯Çü°ú °°´Ù. ¦¢ ¦¢ Æ÷ÀÎÅÍ À̸§ - ÀÏ¹Ý º¯¼ö¸íÀ» ¾²µíÀÌ »ç¿ëÀÚ ÀÓÀÇ´ë·Î ¾´´Ù. ¦¢ ¦¢ °¡¸®Å³ ÇÔ¼öÀÇ ¸Å°³º¯¼ö ¸®½ºÆ® - ÇÔ¼ö Æ÷ÀÎÅÍ°¡ °¡¸®Å°´Â ÇÔ¼öÀÇ ÀÎÀÚÀÌ´Ù. ÀÌ °ªÀº ÇÔ¼ö¸¦ ¦¢ ¦¢ Á¤ÀÇÇÒ ¶§ ÇÔ¼ö¸í ¿À¸¥ÂÊ¿¡ ½á ³Ö´Â ÀÎÀÚÀÇ ³»¿ë°ú °°´Ù. ¦¢ ¦¢ ex) void (*fptr1)(int a, char *b); ¦¢ ¦¢ int (*fptr2)(char *a[], int n); ¦¢ ¦¢ ¦¢ ¦¢ ¦¢ ¦¢ ¦¢ ¦¢ ¦¢ ¦¦¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¥ °£´ÜÇÑ ÇÔ¼ö Æ÷ÀÎÅÍÀÇ ¿¹¸¦ µé¾î º¸¾Ò´Ù. int func1(int val); void main(void) { int i; int (*fptr)(int i); /* ÇÔ¼ö Æ÷ÀÎÅÍÀÇ ¼±¾ð */ i = 123; fptr = func1; /* °ýÈ£¸¦ Ãļ­´Â ¾ÈµÈ´Ù */ i = (*fptr)(i); /* func1À» ½ÇÇàÇÑ´Ù */ printf(" i = %d\n",i); } int func1(int val) { printf(" val is %d\n",val); return (2525); } ¦£¦¡¦¡¦¡¦¤ ¦¢ °á°ú ¦¢ ¦¦¦¡¦¡¦¡¦¥ --------------------------------------------------------------------------------- val is 123 i = 2525 À§ ÇÁ·Î±×·¥¿¡¼­ 'fptr = func1;'À̶ó°í ¾´ ºÎºÐÀº ÇÔ¼ö Æ÷ÀÎÅÍÀÇ ÃʱâÈ­ ºÎºÐÀÌ´Ù. fptrÀº ÇÔ¼ö Æ÷ÀÎÅÍ°¡ µÇ°í func1Àº ÇÔ¼ö Æ÷ÀÎÅÍÀÇ °ªÀÌ µÈ´Ù. Áï ÇÔ¼ö¿¡¼­ '()'¿Í ±× ¾È¿¡ µé¾îÀÖ´Â ºÎºÐÀ» Á¦¿ÜÇÑ ÇÔ¼öÀÇ À̸§Àº ÇÔ¼ö Æ÷ÀÎÅÍ »ó¼ö°¡ µÈ´Ù.