ÃÑ ÆäÀÌÁö ¼ö : 3224
![]()
|
Facebook Joinc ±×·ì
Joinc QA »çÀÌÆ®
![]()
Tweet
joinc´Â Firefox¿Í chrome¿¡¼ Å×½ºÆ® Çß½À´Ï´Ù. IE¿¡¼´Â Å×À̺íÀÌ ±úÁö°Å³ª À̹ÌÁö°¡ º¸ÀÌÁö ¾ÊÀ» ¼ö ÀÖ½À´Ï´Ù. ƯÈ÷ ±¸±Û DocsÀ̹ÌÁöÀÇ °æ¿ì ¿¢¹Úó¸®µÉ ¼ö ÀÖ½À´Ï´Ù. 1 Æ÷ÀÎÅÍ À̾߱â
ÀÛ¼ºÀÚ: mwyun(¸Û) 1.1 for¹® ¿¹Á¦char *str;
str = "hello";
for(; *str; str++)
printf("%sn", str);
}
1.2 while¹® ¿¹Á¦/* *s´Â char Çü Æ÷ÀÎÅÍ, ¹®ÀÚ¿ÀÌ µé¾îÀÖÀ½ */
while (*s)
{
/* »ý·« */
++s;
}
1.3 Æ÷ÀÎÅÍ ¿¬»ê
null('\0')Àº ¹®ÀÚ¿À» ³¡À» ÀǹÌÇÕ´Ï´Ù.
°á±¹for¹® ¿¹Á¦¿¡¼ Á¶°Ç½Ä¿¡ ÇØ´çÇÏ´Â ÄÚµå *strÀº °ð str¿¡ ÀÖ´Â µé¾îÀÖ´Â °ª(¹®ÀÚ)ÀÌ nullÀÌ ¾Æ´Ñ °æ¿ì °è¼Ó for¹®ÀÇ ½ºÅÜÀ» ÁøÇàÇÕ´Ï´Ù.
while¹® ¿¹Á¦µµ ¸¶Âù°¡ÁöÀÔ´Ï´Ù.
strÀº ÁÖ¼Ò¸¦ °¡Áö°í ÀÖÀ¸¸é *strÀº ±× ÁÖ¼Ò°¡ °¡¸®Å°´Â ¸Þ¸ð¸®¿¡ ÀúÀåµÈ °ªÀÌ µË´Ï´Ù.
¶ÇÇÑ index(÷ÀÚ)¸¦ »ç¿ëÇÏ¿© str[i] <- ÀÌ·¸°Ô ¹è¿ÀÇ ¿ø¼Ò¸¦ ÂüÁ¶ÇÒ ¼ö ÀÖ½À´Ï´Ù.
i°¡ 3ÀÏ ¶§ &str[3]À̳ª (str+i)Àº °°Àº ÁÖ¼Ò¸¦ °¡¸®Å°¸ç, str[3]¿Í *(str+3)Àº ¸Þ¸ð¸®ÀÇ ³»¿ë(°ª)À» ÀǹÌÇÕ´Ï´Ù.
Áï Æ÷ÀÎÅÍ Áõ°¨Àº À妽º Áõ°¨ÇÏ°íµµ °°½À´Ï´Ù.
¶ÇÇÑ charÇü ¹è¿À̹ǷΠstr++À̸é strÁÖ¼Ò+1¹ÙÀÌÆ® ÁÖ¼Ò¸¦ ³ªÅ¸³»´Â °Í(¸Þ¸ð¸® ¹øÁöÀÇ Áõ°¡)À̰í, str--À̸é strÁÖ¼Ò-1¹ÙÀÌÆ® ÁÖ¼Ò¸¦ ³ªÅ¸³»´Â °Í(¸Þ¸ð¸® ¹øÁöÀÇ °¨¼Ò)ÀÔ´Ï´Ù.
char ÇüÀº ÀúÀå°ø°£ÀÌ 1¹ÙÀÌÆ®¸¦ Â÷ÁöÇϱ⠶§¹®¿¡ Æ÷ÀÎÅÍ´Â 1¹ÙÀÌÆ®¾¿ Áõ°¨ÇÏ°Ô µË´Ï´Ù.
¸¸¾à int Çü ¹è¿ÀÎ °æ¿ì ÀúÀå °ø°£ÀÌ 4¹ÙÀÌÆ®¸¦ Â÷ÁöÇϱ⠶§¹®¿¡ Æ÷ÀÎÅÍ´Â 4¹ÙÀÌÆ®¾¿ Áõ°¨ÇÏ°Ô µË´Ï´Ù. ¿¹) char *str="hello";
str = 0x80000000(32bit ÁÖ¼Ò °ø°£ÀÎ °æ¿ì) À̸é str++Àº charÇü ¹è¿À̹ǷΠÆ÷ÀÎÅÍ´Â strÀÇ ÁÖ¼Ò+1¹ÙÀÌÆ® => str = 0x80000001(0x80000000+1) str++;
printf("%c\n", *str);
=> e
str--Àº charÇü ¹è¿À̹ǷΠÆ÷ÀÎÅÍ´Â strÀÇ ÁÖ¼Ò-1¹ÙÀÌÆ® => str = 0x80000000(0x80000001-1) str--;
printf("%c\n", *str);
=> h
gdb °°Àº µð¹ö°Å·Î str º¯¼öÀÇ ¸Þ¸ð¸® ³»¿ëÀ» ´ýÇÁÇØ½Ã¸é ½±°Ô ÇÒ ¼ö ÀÖ½À´Ï´Ù.
str = 0x80000000 ÀÏ ¶§ +-----+-----+-----+-----+-----+-----+ | h | e | l | l | o | \0 | +-----+-----+-----+-----+-----+-----+ ^ ^ ^ ^ ^ ^ ^ | | | | | | | str+0 str+1 str+2 str+3 str+4 str+5 str+6
°¢ ¿ø¼ÒÀÇ ÁÖ¼Ò °è»êÀº ´ÙÀ½°ú °°½À´Ï´Ù. index ½ÃÀÛ ÁÖ¼Ò ½ÇÁ¦ ÁÖ¼Ò
| | |
V V V
str+0 = 0x80000000 + 0 = 0x80000000
str+1 = 0x80000000 + 1 = 0x80000001
str+2 = 0x80000000 + 2 = 0x80000002
str+3 = 0x80000000 + 3 = 0x80000003
str+4 = 0x80000000 + 4 = 0x80000004
str+5 = 0x80000000 + 5 = 0x80000005
1.4 Âü °í
Âü°í·Î str+6Àº ¾²·¹±â°ªÀÌ µé¾îÀÖ´øÁö ¾Æ´Ï¸é ´Ù¸¥ º¯¼ö°¡ ±× ¸Þ¸ð¸® ¿µ¿ªÀ» ¾²°í ÀÖÀ» ¼ö ÀÖ½À´Ï´Ù.
±×·¯±â ¶§¹®¿¡ À߸ø Á¢±ÙÇÏ¸é ¿À¹öÇÃ·Î¿ì ¿¡·¯°¡ ¹ß»ýÇÕ´Ï´Ù.
ÀÌ·¸µí Ç×»ó ³²ÀÇ ¸Þ¸ð¸®¸¦ ħ¹üÇÏÁö ¾Ê´Â Á¤È®ÇÑ Æ÷ÀÎÅÍ ¿¬»ê ¹× ¸Þ¸ð¸® °ü¸®¸¦ ÇØ¾ßÇÕ´Ï´Ù.
¸Þ¸ð¸® ¸¯µµ ¸Þ¸ð¸® °ü¸®¸¦ À߸øÇؼ ¹ß»ýÇÑ ¹®Á¦Áß ÇϳªÀÔ´Ï´Ù.
|
|
|
|
EmailÀ» ±âÀÔÇϸé, ´ñ±ÛÀÌ ¸ÞÀÏ·Î Àü´ÞµË´Ï´Ù. |
|