1581, 13/80 ȸ¿ø°¡ÀÔ  ·Î±×ÀΠ 
   sihun1113
   [C±âÃÊ] 07 - Æ÷ÀÎÅÍÀÇ Å¸ÀÔ°ú Á¢±Ù¹ý

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



    
1341   [C±âÃÊ] 05 º¸Ãæ: CÀÇ ±â±«ÇÑ(?) Æ÷ÀÎÅÍ ¼±¾ð ±¸¹®[2]     sihun1113
05/25 6122
1340   Á¤¸».....Áö¹æÀº[11]     intmain1202
10/25 6122
1339   [ÀÚÀÛ]C/C++ÇÁ·Î±×·¡¸Ó°¡ º¸´Â À¥¼¼»ó[4]     qa22ahj
07/12 6135
1338   [ÀÚÀÛ] ºñ¹Ð¹øÈ£ °ü¸®(º° °Í ¾ø½À´Ï´Ù.)     whdgusdl1220
08/19 6135
1337   iPhone SDK¸¦ ÀÌ¿ëÇÑ °³¹ßÀÚ ´Ü±â°úÁ¤[2]     pshshs
02/17 6135
1336   [ÀÚÀÛ±Û]¿ìºÐÅõ ¸®´ª½º¿¡¼­ Çѱ۰úÄÄÇ»ÅÍ ÆÄÀÏÀ» º¸´Â¹ý![1]     ÇѽÂÀç
01/17 6138
1335   [ÀÚÀÛ] Linux Reverse Engineering - for,if[2]     CodeAche
02/24 6164
  [C±âÃÊ] 07 - Æ÷ÀÎÅÍÀÇ Å¸ÀÔ°ú Á¢±Ù¹ý     sihun1113
05/01 6165
1333   C¾ð¾î °­ÁÂ.     M.K
02/16 6176
1332   alsduddlrk12@hanmir.com ÇØÅ·°¡¸£ÃÄÁÖ½Ç ½º½ÂºÐ±¸ÇÕ´Ï´Ù...[6]     st9203
02/05 6183
1331   c¾ð¾î ÇÁ·Î±×·¡¹Ö Áú¹®ÀÌ¿ä[3]     cyxy33
02/07 6183
1330   ÇïÇÁ¹Ì Á»[5]     ÇØÄѽºÄð
04/18 6192
1329   È¥¶õ.¿¡ °ü¤·¼­[1]     dkdkfjgh
12/25 6195
1328   [ÀÚÀÛ teachercyber] java¿¡¼­ Garbage Collection À̶õ?[2]     teachercyber
07/30 6207
1327   [ÀÚÀÛ][±¸±ÛÇØÅ·±âÃÊ]°í±Þ¿¬»êÀÚpart2[5]     lsn10919
10/05 6215
1326   ÈùÆ®[10]     akwjs566
03/31 6216
1325   [ÀÚÀÛ±Û]c¾ð¾î·Î ¿øµµ¿ì.ver ¿ø¹öÆ° Á¾·á ÇÁ·Î±×·¥À» ¸¸µé¾î º¸ÀÚ! (Ç®ÀÌÆ÷ÇÔ)     ÇѽÂÀç
01/06 6220
1324   [ÀÚÀÛ][±¸±ÛÇØÅ·±âÃÊ]°í±Þ¿¬»êÀÚpart3[2]     lsn10919
10/06 6225
1323   Ȥ½Ã³ª À©7 ¾²½Ã´ÂºÐµé ÅÚ³ÝÀÌ ¾ÈµÉ¶§[1]     sotjs13
01/06 6229
1322   µµ¿ÍÁà¿ä~[3]     wishingstar
11/28 6233
[1]..[11][12] 13 [14][15][16][17][18][19][20]..[80]

Copyright 1999-2024 Zeroboard / skin by Hackerschool.org / Secure Patch by Hackerschool.org