http://www.hackerschool.org/HS_Boards/zboard.php?id=Free_Lectures&no=1741 [º¹»ç]
ÃâÀú= ¶§¸±²¨¾ß
¿øº»= http://blog.naver.com/ani4ever/120026820947
*----------------------------------------------------------------------------------------------------------*
ÀÌ Ä«Å×°í¸®´Â ±×µ¿¾È ¹è¿ü´ø°ÍÀ̶ó´ø°¡ °øºÎÇÏ¸é¼ ¾Ë°ÔµÈ ³»¿ëµéÀ» Áß½ÉÀ¸·Î Ȥ¿© Âü°í°¡ µÉ ¼ö ÀÖÀ»±î ½ÍÀº ³»¿ëµéÀ»
¸ð¾ÆµÐ °÷ÀÔ´Ï´Ù. µû¶ó¼ ÀÌ ±ÛµéÀ» ´ë»óÀÌ µÇ´Â ºÐµéÀº.. ÇÁ·Î±×·¡¹ÖÀ» °« ½ÃÀÛÇ߰ųª °³³äÀÌ ¸¶±¸¸¶±¸ Èçµé¸®½Ã´Â ºÐµé
Á¤µµ°¡ µÇ°Ú½À´Ï´Ù. ±×·¯´Ï ³Ê¹« ¿åÇÏÁö´Â ¸»¾ÆÁÖ¼¼¿ä =_=;;;
Ȥ½Ã Á¦°¡ À߸ø ¾Ë°í ÀÖ´Â ºÎºÐµéÀ̶ó´ø°¡ ±Ã±ÝÇÑ °ÍÀÌ ÀÖÀ¸¸é ÂÊÁö ³²°ÜÁֽðųª ¸®ÇÃÀ» ´Þ¾ÆÁÖ½Ã¸é °¨»çÇÏ°Ú½À´Ï´Ù.
*----------------------------------------------------------------------------------------------------------*
Æ÷ÀÎÅÍÀÇ »ç¿ë ºÎºÐÀº ³ªÁß¿¡ ¼³¸íÇϱâ·Î ÇÏ°í ¿ì¼± ¿Ö Æ÷ÀÎÅÍ°¡ ´Ù¾çÇÑ ÇüÀ» °®´ÂÁö »ìÆ캸µµ·Ï ÇÏ°Ú½À´Ï´Ù.(ÀÌ°É ¾Ë¸é ´ÙÂ÷¿ø Æ÷ÀÎÅÍ´Ï ¹¹´Ï ÇÏ´Â °í±Þ »ç¿ë ºÎºÐÀº ÀÌÇØ°¡ Á» ´õ ½¬¿öÁý´Ï´Ù)
Æ÷ÀÎÅÍ´Â ¾Õ¿¡¼ 'ÁÖ¼Ò¸¦ ÀúÀåÇÏ´Â intÇü Å©±âÀÇ º¯¼ö'¶ó°í ÀÌÇØÇß½À´Ï´Ù.
Áï, [char*]°¡ µÆ°Ç [double*]°¡ µÆ°Ç ½ÉÁö¾î [class*]°¡ µÆ°Ç ¸ðµÎ intÅ©±â(4Byte)¸¦ °®´Â Á¤¼öÇü º¯¼ö¿¡ ºÒ°úÇÕ´Ï´Ù. ¾îÂ÷ÇÇ Á¤¼öÇü ÁÖ¼Ò¸¦ ÀúÀåÇҰŶó¸é Â÷¶ó¸® pointer¶ó´Â º°µµÀÇ Æ÷ÀÎÅÍÇüÀ» ¸¸µé¾î¼ »ç¿ëÇϸé Çò°¥¸®Áöµµ ¾Ê°í ÆíÇÒÅÙµ¥ ¿Ö ±¸Áö char*´Ï double*ÀÌ´Ï ÀÏÀÏÀÌ ¸¸µé¾î »ç¿ëÀ» Çϴ°ɱî¿ä?
¾Õ¼ »ç¿ëÇß´ø ¸Þ¸ð¸® ºí·° ±×¸²À» ´Ù½Ã °¡Á®¿Í¼ º¸µµ·Ï ÇÏÁÒ..
(¡à ÇÑÄÀº 1Byte, ÃʱâȵÇÁö ¾ÊÀº »óÅ·Π¹«½¼ °ªÀÌ µé¾î°¡ ÀÖ´ÂÁö´Â ¾Ë¼ö ¾øÀ½)
0 1 2 3 4 5 6 7 8 9 a b c d e f 0 1 2 3 4 5 6 7 8 9 a b c d e f
0x0- ¡à¡à¡à¡à ¡à¡à¡à¡à ¡à¡à¡à¡à ¡à¡à¡à¡à ¡à¡à¡à¡à ¡à¡à¡à¡à ¡à¡à¡à¡à ¡à¡à¡à¡à
0x2- ¡à¡à¡à¡à ¡à¡à¡à¡à ¡à¡à¡à¡à ¡à¡à¡à¡à ¡à¡à¡à¡à ¡à¡à¡à¡à ¡à¡à¡à¡à ¡à¡à¡à¡à
0x4- ¡à¡à¡à¡à ¡à¡à¡à¡à ¡à¡à¡à¡à ¡à¡à¡à¡à ¡à¡à¡à¡à ¡à¡à¡à¡à ¡à¡à¡à¡à ¡à¡à¡à¡à
0x6- ¡à¡à¡à¡à ¡à¡à¡à¡à ¡à¡à¡à¡à ¡à¡à¡à¡à ¡à¡à¡à¡à ¡à¡à¡à¡à ¡à¡à¡à¡à ¡à¡à¡à¡à
¿©±â¿¡ intÇü º¯¼ö 2°³¿Í charÇü º¯¼ö 3°³, doubleÇü º¯¼ö 2°³¸¦ ¼±¾ðÇß´Ù°í »ý°¢Çغ¸ÁÒ.
±×·³ ¾Æ·¡¿Í °°ÀÌ º¯¼ö ºí·°ÀÌ ¼¼Æà µÉ°Í ÀÔ´Ï´Ù.
int iNum1, iNum2;
char cChar1, cChar2, cChar3;
double dNum1, dNum2;
0 1 2 3 4 5 6 7 8 9 a b c d e f 0 1 2 3 4 5 6 7 8 9 a b c d e f
0x0- ¡à¡à¡à¡à ¡à¡à¡à¡à ¡à¡à¡à¡à ¡à¡à¡à¡à ¡à¡à¡à¡à ¡à¡à¡à¡à ¡à¡à¡à¡à ¡à¡à¡à¡à
0x2- ¡à¡à¡à¡à ¡à¡à¡à¡à ¡à¡à¡à¡à ¡à¡à¡à¡à ¡à¡à¡à¡à ¡à¡à¡à¡à ¡à¡à¡à¡à ¡à¡à¡à¡à
0x4- ¡à¡à¡à¡à ¡à¡à¡à¡à ¡à¡à¡à¡à ¡à¡à¡à¡à ¡à¡à¡à¡à ¡à¡à¡à¡à ¡à¡à¡à¡à ¡à¡à¡à¡à
0x6- ¡à¡à¡à¡à ¡à¡à¡à¡à ¡à¡à¡à¡à ¡à¡à¡à¡à ¡à¡à¡à¡à ¡à¡à¡à¡à ¡à¡à¡à¡à ¡à¡à¡à¡à
¿©±â¿¡ °¢ º¯¼ö¸¦ À§ÇÑ Æ÷ÀÎÅÍ º¯¼ö¸¦ Çϳª¾¿ ¼±¾ðÀ» Çؼ »ç¿ëÇÑ´Ù°í ÇßÀ»¶§
pointer p1 = &iNum1;
pointer p2 = &cChar1;
pointer p3 = &pdNum1;
(pointer´Â [Æ÷ÀÎÅÍ µ¥ÀÌÅÍ Å¸ÀÔ]À̶ó°í °¡Á¤ÇÏ°í)
À̶ó°í Çϸé p1Àº 0x00À», p2´Â 0x08, p3´Â 0x0c ¶ó´Â °ªÀ» °¢°¢ °®°Ô µË´Ï´Ù.
ÀÚ.. ÀÌÁ¦ ÀÌ °ªÀ» ÂüÁ¶ÇØ º¾½Ã´Ù.
*p1Àº ¸Þ¸ð¸®ÀÇ ¾îµð¼ºÎÅÍ ¾îµð±îÁö¸¦ ÂüÁ¶ÇØ¾ß µÉ±î¿ä? p1À̶ó´Â º¯¼ö¸í¸¸À¸·Î p1ÀÌ ÂüÁ¶ÇÏ´Â ¸Þ¸ð¸®ÀÇ µ¥ÀÌÅÍ Å¸ÀÔÀ» ¾Ë ¼ö ÀÖÀ»±î¿ä? p2´Â? p3´Â?
¸¸¾à pointer¶ó´Â ³à¼®ÀÌ ÀоîµéÀÌ´Â ¸Þ¸ð¸®ÀÇ ¹üÀ§°¡ doubleÀ» »óÁ¤Çؼ 8Byte¶ó°í ÇÑ´Ù¸é p1À̶ó´Â ³à¼®Àº iNum1, iNum2°¡ Á¶ÇÕµÈ Èñ¾ÈÇÑ ¸Þ¸ð¸® ¹üÀ§¸¦ Àоî¿À·Á°í ÇÒ °ÍÀÔ´Ï´Ù.
ÀÌÁ¦ °¨ÀÌ ¿À½ÃÁÒ? ±ÄÀÌ char*´Ï double*ÀÌ´Ï ÇÏ´Â Æ÷ÀÎÅÍ µ¥ÀÌÅÍ Å¸ÀÔÀÌ Á¸ÀçÇÏ´Â ÀÌÀ¯´Â ÇØ´ç Æ÷ÀÎÅÍ º¯¼ö°¡ ÂüÁ¶ÇØ¾ß ÇÒ µ¥ÀÌÅÍ ¹üÀ§¿Í ÇüŸ¦ Á¦´ë·Î ¾Ë±â À§Çؼ Á¸ÀçÇÏ´Â °Ì´Ï´Ù.
µû¶ó¼ char* Çü Æ÷ÀÎÅÍ º¯¼ö¶ó¸é ÀÌ ³à¼®ÀÌ ÂüÁ¶ÇÏ´Â ÁּҷκÎÅÍ 1Byte¸¸ÅÀ» ÀоîµéÀÌ¸é µÇ°í, int* Çü º¯¼ö¶ó¸é 4Byte¸¸Å, double*¶ó¸é 8Byte¸¸ÅÀ» ÀоîµéÀ̶ó´Â ¾ê±é´Ï´Ù.
ÀÚ ÀÌÁ¦ ÇÑ´Ü°è ¿Ã¶ó°©´Ï´Ù.
¸ðµç º¯¼ö¿¡´Â °íÀ¯ÁÖ¼Ò°¡ ÇÒ´çµÈ´Ù°í Çß½À´Ï´Ù. Æ÷ÀÎÅÍ º¯¼ö¶ó°í ¿¹¿Ü´Â ¾Æ´ÏÁö¿ä.
Æ÷ÀÎÅÍ º¯¼öµµ ¸¶Âù°¡Áö·Î °íÀ¯ ÁÖ¼Ò°¡ ÀÖ°í, À̸¦ ÀÌ¿ëÇؼ ÂüÁ¶¿¡ ÂüÁ¶¸¦ °ÅµìÇÏ´Â ´ÙÂ÷¿ø Æ÷ÀÎÅͶó´Â ³à¼®ÀÌ Á¸ÀçÇÕ´Ï´Ù.
Èå¾Æ~~ ÀÌ°Ç ¶Ç ¹¹¾ß~ ¶ó°í ´çȲÇÏ½Ç ¼ö Àִµ¥¿ä »ç½Ç À̰͵µ ¾Ë°íº¸¸é º°°Å ¾Æ´Õ´Ï´Ù.
¾Õ¼ char* ¶ó´Â ³à¼®Àº ÀÌ ³à¼®ÀÌ ÂüÁ¶ÇÏ´Â ¸Þ¸ð¸® ÁÖ¼Ò·Î ºÎÅÍ 1Byte¸¦ ÀоîµéÀδٰí ÇßÁÒ?
char** ¶ó´Â ³à¼®Àº ÀÌ ³à¼®ÀÌ ÂüÁ¶ÇÏ´Â ¸Þ¸ð¸® ÁּҷκÎÅÍ char* Å©±â¸¸Å Àоîµé¿© »ç¿ëÇÏ´Â °Í »Ó ÀÔ´Ï´Ù. ¿¹Á¦¸¦ º¸½ÃÁÒ.
*--------------------------------------------------------------------------------------*
int tmp = 77; // ÀÏ¹Ý Á¤¼öÇü º¯¼ö¸¦ ¼±¾ðÇÏ°í ÀÓÀÇÀÇ ¼ö¸¦ ´ëÀÔ
int* ptmp = &tmp; // Á¤¼öÇü Æ÷ÀÎÅÍ º¯¼ö¸¦ ¼±¾ðÇÏ°í tmpÀÇ ÁÖ¼Ò¸¦ ÀúÀå
int** pptmp = &ptmp; // Á¤¼öÇü 2Â÷¿ø Æ÷ÀÎÅÍ º¯¼ö¸¦ ¼±¾ðÇÏ°í ptmpÀÇ ÁÖ¼Ò¸¦ ÀúÀå
printf( "tmpÀÇ ÁÖ¼Ò : %d\n", &tmp );
printf( "tmpÀÇ °ª : %d\n", tmp );
printf( "\n" );
printf( "ptmpÀÇ ÁÖ¼Ò : %d\n", &ptmp );
printf( "ptmpÀÇ °ª : %d\n", ptmp );
printf( "ptmpÀÇ ÂüÁ¶°ª : %d\n", *ptmp );
printf( "\n" );
printf( "pptmpÀÇ ÁÖ¼Ò : %d\n", &pptmp );
printf( "pptmpÀÇ °ª : %d\n", pptmp );
printf( "pptmpÀÇ ÂüÁ¶°ª : %d\n", *pptmp );
printf( "\n" );
printf( "*pptmpÀÇ ÁÖ¼Ò : %d\n", &(*pptmp) );
printf( "*pptmpÀÇ °ª : %d\n", (*pptmp) );
printf( "*pptmpÀÇ ÂüÁ¶°ª : %d\n", *(*pptmp) );
*--------------------------------------------------------------------------------------*
°á°ú
tmpÀÇ ÁÖ¼Ò : 1245052
tmpÀÇ °ª : 77
ptmpÀÇ ÁÖ¼Ò : 1245048
ptmpÀÇ °ª : 1245052
ptmpÀÇ ÂüÁ¶°ª : 77
pptmpÀÇ ÁÖ¼Ò : 1245044
pptmpÀÇ °ª : 1245048
pptmpÀÇ ÂüÁ¶°ª : 1234052
*pptmpÀÇ ÁÖ¼Ò : 1245048
*pptmpÀÇ °ª : 1245052
*pptmpÀÇ ÂüÁ¶°ª : 77
*--------------------------------------------------------------------------------------*
¸ÕÀú tmpÀÇ ÁÖ¼Ò¿Í ptmpÀÇ º¯¼ö°ª, pptmpÀÇ ÂüÁ¶°ªÀ» ÁÖ¸ñÇØ ÁÖ¼¼¿ä. [½ºÅ͵ð 06]¿¡ ³ª¿Ô´ø ¿¹Á¦ÀÇ ³»¿ë°ú °ÅÀÇ ºñ½ÁÇÕ´Ï´Ù. ÀÏ¹Ý º¯¼öÀÇ ÁÖ¼Ò°ªÀÌ 1Â÷¿ø Æ÷ÀÎÅÍÀÇ º¯¼ö°ªÀÌ°í, 2Â÷¿ø Æ÷ÀÎÅÍÀÇ ÂüÁ¶°ªÀÌ µË´Ï´Ù.
±×¸®°í ptmpÀÇ ÁÖ¼Ò, °ª, ÂüÁ¶°ª°ú *pptmpÀÇ ÁÖ¼Ò, °ª, ÂüÁ¶°ªÀ» ºñ±³ÇØ º¸¼¼¿ä. µÎ ±×·ìÀÇ °ªÀÌ ¿ÏÀüÈ÷ µ¿ÀÏ ÇÑ °ÍÀ» ¾Ë ¼ö ÀÖ½À´Ï´Ù.
¿©±â¼ ¾Ë ¼ö ÀÖ´Â °ÍÀº ´ÙÂ÷¿ø Æ÷ÀÎÅͶõ ¸î¹øÀÇ ÂüÁ¶¸¦ °ÅÃľß(¸î°³ÀÇ Æ÷ÀÎÅÍ ¿¬»êÀÚ¸¦ ½á¾ß) ¿ø½Ã°ª¿¡ Á¢±ÙÀÌ °¡´ÉÇÑ°¡·Î ¿ä¾àÇÒ ¼ö ÀÖ´Ù´Â °ÍÀÔ´Ï´Ù.
¾Õ¼ ¸Þ¸ð¸®¸¦ ÂüÁ¶ÇÏ´Â ºÎºÐ¿¡ À־µ ¸¸¾à 5Â÷¿ø Æ÷ÀÎÅÍ º¯¼ö¸¦ »ç¿ëÇß´Ù°í ÇÏ´õ¶óµµ
*****5Â÷º¯¼ö = ****4Â÷º¯¼öÀÇ °ª = 3Â÷º¯¼öÀÇ ÁÖ¼Ò
*****5Â÷º¯¼ö = ****4Â÷º¯¼ö = ***3Â÷º¯¼öÀÇ °ª = 2Â÷º¯¼öÀÇ ÁÖ¼Ò
*****5Â÷º¯¼ö = ****4Â÷º¯¼ö = ***3Â÷º¯¼ö = **2Â÷º¯¼öÀÇ °ª = 1Â÷º¯¼öÀÇ ÁÖ¼Ò
*****5Â÷º¯¼ö = ****4Â÷º¯¼ö = ***3Â÷º¯¼ö = **2Â÷º¯¼ö = *1Â÷º¯¼öÀÇ °ª = ÀϹݺ¯¼öÀÇ ÁÖ¼Ò
*****5Â÷º¯¼ö = ****4Â÷º¯¼ö = ***3Â÷º¯¼ö = **2Â÷º¯¼ö = *1Â÷º¯¼ö = ÀϹݺ¯¼ö°ª
ÀÌ·± ¹æ½ÄÀÇ Á¢±Ù¿¡ ÀÇÇØ »ç¿ëµÇ¾îÁø´Ù´Â ¶æ ÀÔ´Ï´Ù.
¾Æ.. ±×¸®°í Á¶½ÉÇÏ¼Å¾ß ÇÒ ºÎºÐÀº... [&º¯¼ö == 1Â÷Æ÷ÀÎÅÍ°ª] ÀÌÁö¸¸ [&&º¯¼ö]´Ï [&&&º¯¼ö]´Ï ÇÏ´Â ¿ªÇàÁ¢±ÙÀº Àý´ë ºÒ°¡´ÉÇÏ´Ù´Â °Í...(ÀüÇô ¿¹»ó ¸øÇÏ°í ÀÖ¾ú´Âµ¥.. Çб³ ÈĹè³à¼® Áß¿¡ Çϳª°¡ ÀÌ°É ¹°¾îº¸´Â ¹Ù¶÷¿¡.. ÀÌ·¸°Ô »ý°¢ÇÏ´Â »ç¶÷µµ ÀÖ´Ù´Â °É ¾Ë¾Ò½À´Ï´Ù ¤Ñ,.¤Ñ;; ±×³É Âü°íÇϼ¼¿ä)
ÀÏ´Ü Æ÷ÀÎÅÍ°¡ °®´Â ŸÀÔ¿¡ °ü°èµÈ Ư¼º°ú Ư¡¿¡ ´ëÇؼ ¾Ë¾Æº¸¾Ò½À´Ï´Ù.
´ÙÀ½À¸·Î´Â ¹è¿°ú Æ÷ÀÎÅÍÀÇ °ü°è¿¡ ´ëÇؼ ¾Ë¾Æº¸µµ·Ï ÇÏ°Ú½À´Ï´Ù.
±×·³ À̸¸..
|
Hit : 6166 Date : 2011/05/01 11:28
|