ÇÁ·Î±×·¡¹Ö

 3198, 1/160 ȸ¿ø°¡ÀÔ  ·Î±×ÀΠ 
   SKTCTO
   [C¾ð¾î]* Æ÷ÀÎÅÍ¿¬»ê Àß ¾Æ½Ã´ÂºÐ ÀÖÀ¸½Å°¡¿ä..?

http://www.hackerschool.org/HS_Boards/zboard.php?AllArticle=true&no=3374 [º¹»ç]


#include <stdio.h>
int main()
{
        char *ptr_ary[5];
        int i;

        ptr_ary[0]="dog";
        printf("%d,%d,%d,%d\n",&ptr_ary[0],*ptr_ary[0],*&ptr_ary[0],ptr_ary[0]);
        
        for(i=0; i<1; i++){
                printf("%s\n", ptr_ary[i]);
        }
        return 0;
}

¿©±âº¸¸é ¹Ø¿¡ printf¿¡¼± dog¶ó°í ³ª¿À°í,
À§¿¡
&ptr_ary[0] = 1245008
*ptr_ary[0] = 100
*&ptr_ary[0] = 4282416
ptr_ary[0] = 4282416
°ªÀÌ ³ª¿À´Âµ¥¿©;;;;
¹°·Ð %d·Î ÇØ¼­ ±×·¸°ÙÁö¸¸
&ptr_ary[0] = 1245008´Â ÁÖ¼Ò°ª °°Àºµ¥
*ptr_ary[0] = 100 <<< À̰Ŷû
*&ptr_ary[0] = 4282416 ,ptr_ary[0] = 4282416  << À̰Ŵ ¹«¾ùÀÎÁö ¾Æ´Â
õÀç ÇÁ·Î±×·¡¸Ó °è½Å°¡¿ä??


  Hit : 3516     Date : 2012/04/02 01:02



    
¿ì´À´Ô ptr_ary[0] = "dog"; ¸¦ ¼öÇàÇÏ°í ³ª¸é
ÄÄÇ»ÅÍ´Â ¸Þ¸ð¸® ¾îµò°¡¿¡´Ù°¡ dog ¶ó´Â ¹®ÀÚ¿­À» ÀúÀåÇϰí, ±× ¹®ÀÚ¿­ÀÇ Ã¹¹øÂ° ¹®ÀÚ¸¦ °¡¸®Å°µµ·Ï ¸¸µì´Ï´Ù. Áï, ptr_ary[0] Àº ±× ù¹øÂ° ¹®ÀÚ¸¦ °¡¸®Å°°í ÀÖ´Â °ÍÀÌÁÒ. ¶ÇÇÑ, ±× ù¹øÂ° ¹®ÀÚ°¡ ÀÖ´Â °÷ÀÇ ÁÖ¼Ò°¡ ÀúÀåµÇ¾î ÀÖ´Ù°í »ý°¢ÇÏ½Ã¸é µË´Ï´Ù.
±×·¡¼­ *ptr_ary[0] = 100 ÀÌ µÇ´Â °Ì´Ï´Ù. 'd'¶ó´Â ¹®ÀÚ´Â ¾Æ½ºÅ°ÄÚµå·Î 100ÀÔ´Ï´Ù. ±×·¡¼­ 100ÀÌ Ãâ·ÂµÈ°Ì´Ï´Ù.
°£´ÜÈ÷ È®ÀÎ ÇϽǼö ÀÖ´Â ¹æ¹ýÀÌ Àִµ¥, printf("%c", *ptr_ary[0]); À» ÇØº¸½Ã¸é ¹®ÀÚ 'd'°¡ Ãâ·ÂµÈ´Ù´Â°É È®ÀÎÇÒ ¼ö ÀÖ½À´Ï´Ù.

*&ptr_ary[0]Àº ptr_ary[0]ÀÌ °¡¸®Å°°í ÀÖ´Â °÷ÀÇ ÁÖ¼Ò¶ó°í ÇØ¼®ÇÒ ¼ö ÀÖ½À´Ï´Ù.
SKTCTO´ÔÀÇ ÄÄÇ»ÅÍ¿¡¼­´Â 4282416¶ó´Â ¸Þ¸ð¸® ÁÖ¼Ò¿¡´Ù°¡ 'd'¶ó´Â ¹®ÀÚ¸¦ ÀúÀåÇ߳׿ä.
±×·¯¸é 4282417¿¡ 'o'¶ó´Â ¹®ÀÚ°¡ ÀúÀåµÇ¾îÀÖ°í, 4282418¿¡ 'g'¶ó´Â ¹®ÀÚ°¡ ÀúÀåµÇ¾î Àְڳ׿ä.
À̰ÍÀº printf("%c,%c,%c\n",*ptr_ary[0], *(ptr_ary[0]+1),*(ptr_ary[0]+2)); À» ÅëÇØ¼­ È®ÀÎ ÇÒ ¼ö ÀÖ½À´Ï´Ù.
ÀÌ ¸Þ¸ð¸® ÁÖ¼Ò´Â ÄÄÇ»Å͸¶´Ù ´Ù¸£°í, °°Àº ÄÄÇ»ÅÍ·Î ÄÚµùÇÏ´õ¶óµµ ½ÇÇàÇÒ¶§ ¸¶´Ù ´Þ¶óÁú ¼ö ÀÖ½À´Ï´Ù.

ptr_ary[0]Àº À§¿¡¼­ ¸»Çß´Ù ½ÍÀÌ ¹®ÀÚ¿­ÀÇ Ã¹¹øÂ° ¹®ÀÚ°¡ ÀÖ´Â °÷ÀÇ ÁÖ¼Ò¸¦ ³ªÅ¸³»°í ÀÖ½À´Ï´Ù.
2012/04/02  
gamja ¿ì´À´Ô²²¼­ Á¤È®ÇÏ°Ô ¼³¸íÇØ Áּ̳׿ä.

1.
*ptr_ary[0] == *(4282416)


2.
--------ÂüÁ¶ÀÇ ¸ð½À----------------------------------------------
&ptr_ary[0] -> ptr_ary[0] -> 'd'
(char **) (char *) (char)
--------------------------------------------------------------------
&ptr_ary[0]Àº ´õºí Æ÷ÀÎÅͰ¡ µË´Ï´Ù.
*(&ptr_ary[0])Àº °á±¹ ´õºí Æ÷ÀÎÅͰ¡ °¡¸®Å°´Â °ªÀ» ÂüÁ¶ÇÏ´Â °ÝÀÌ µÇ¹Ç·Î ptr_ary[0]ÀÌ µË´Ï´Ù.

°á±¹ *&ptr_ary[0] == *(1245008) == ptr_ary[0] ÀÌ µË´Ï´Ù.


2012/06/10