http://www.hackerschool.org/HS_Boards/zboard.php?id=QNA_programming&no=379 [º¹»ç]
Áú¹®1)
float f[10];
int i[10];
int *i_ptr;
float *f_ptr;
i_ptr=i;
f_ptr=f;
(for¹®À¸·Î 10¹ø ¹Ýº¹)
printf("\n%d\t%f",*i_ptr++,*f_ptr++);
ÀÌ°ÍÀº µÎ Æ÷ÀÎÅÍ°¡ °¡¸£Å°´Â ÁÖ¼Ò°ª¿¡ ++ ½ÃÅ°´Â °ÍÀÌ ¾Æ´Ï°í
*i_ptr,*f_ptr°ú ¿¬°áµÇ¾î ÀÖ´Â ¹è¿¿¡ ÇÒ´çµÇ¾îÀÖ´Â °ª¿¡ ++½ÃÅ°´Â°ÍÀÌ ¸Â³ª¿ä?
´äº¯ 1) ¾Æ´Õ´Ï´Ù.
¿ì¼± ¿¬»êÀÚ ¿ì¼± ¼øÀ§À» ¾Æ¼Å¾ß ÇÒ°Í °°±º¿ä.
++ ÀÌ * º¸´Ù ¿ì¼±¼øÀ§°¡ ³ô±â ¶§¹®¿¡ ¸ÕÀú ¿¬»êÀÌ µÇÁÒ.
Áï ±×·¸±â ¶§¹®¿¡
*i_ptr++ °°Àº °æ¿ì´Â ++ °¡ ¿ì¼±¼øÀ§°¡ ³ô±â ¶§¹®¿¡ i_ptr++ ¸ÕÀú ¿¬»êµË´Ï´Ù.
*i_ptr++ Àº *(i_ptr++) °ú °°Àº Àǹ̰¡ µÇ´Â°ÍÀÌÁÒ.
() ´Â ¸ÕÀú ¿¬»êµÈ´Ù´Â È®½ÇÇÑ Àǹ̸¦ ºÎ¿©Çϱâ À§ÇØ ³ÖÀº °ÍÀÔ´Ï´Ù.
Áï ¾ø¾îµµ ±×¸¸ÀÌÁÒ.
µû¶ó¼ *i_ptr++ Àº i_ptr ÀÇ °ªÀÎ ÁÖ¼Ò°ª¿¡ ++ ¿¬»ê ÀÛ¾÷À» ÇÑÈÄ
±×´ÙÀ½¿¡ * ¿¬»êÀÚ¿¡ ÀÇÇØ º¯°æµÈ ÁÖ¼Ò°ª¿¡ ÀúÀåµÇ¾î ÀÖ´Â Á¤¼ö°ªÀ» ÂüÁ¶ÇÏ°ÚÁÒ.
*i_ptr ¿Í ¿¬°áµÇ¾î ÀÖ´Â ¹è¿¿¡ ÇÒ´çµÇ¾îÀÖ´Â °ª¿¡ ++½Ã±â À§Çؼ´Â
++ ¿¬»ê ¼øÀ§°¡ * º¸´Ù ³ô±â ¶§¹®¿¡
(*i_ptr)++ ÀÌ·¸°Ô ÇØÁà¾ß µË´Ï´Ù.
Áú¹®2)
ptr ÀÌ Æ÷ÀÎÅÍ À϶§
ptr=&x[10];
À¸·Î ÃʱâÈ ÇÒ¼ö ÀÖ³ª¿ä? ¸¸¾à ¾ÈµÈ´Ù¸é
Æ÷ÀÎÅÍ¿¡ ¿øÇÏ´Â ¹è¿À» ÀúÀåÇÏ°í ½ÍÀ»¶©
¹è¿ÀÇ À̸§Àº Æ÷ÀÎÅÍ»ó¼ö¸¦ ÀúÀåÇÏ¸é¼ + ½ÃÄÑÁÖ¾î¾ß Çϳª¿ä?
ex) x[4]ÀÇ ÁÖ¼Ò¸¦ ³Ö°í ½ÍÀ»¶©
ptr=x;
ptr +=4;
ÀÌ·¸°Ô ÇØ¾ß µÇ´ÂÁö?
´äº¯ 2) ¿ì¼± ù¹ø° ºÎÅÍ º¸ÁÒ.
ptr Æ÷ÀÎÅÍ À϶§
ptr=&x[10]; <- ÀÌ°ÍÀÌ °¡´ÉÇÑ °ÍÀΰ¡ Çϼ̴µ¥.
°¡´É ÇÒ¼öµµ ÀÖ°í °¡´É ÇÏÁö ¾ÊÀ»¼ö ÀÖ½À´Ï´Ù.
¿ì¼± ptr=&x[10]; ¸¸ »ý°¢ÇØ º¸ÀÚ¸é ÀÌ·¸°Ô µÇÁÒ.
Æ÷ÀÎÅÍ º¯¼ö ptr ¿¡
¹è¿¸íÀÎ x ÀÇ 11¹ø° ¿ø¼ÒÀÇ ÁÖ¼Ò°ªÀ»
³Ö´Â´Ù.
ptr=&x[10]; ÀÌ ¹®Àå ÀÚü´Â ¿ÇÀº ¹®ÀåÀÌ µË´Ï´Ù.
ÇÏÁö¸¸ À̹®À常 ºÁ¼´Â ¿Ç´Ù ¿ÇÁö ¾Ê´Ù¶ó°í ´ÜÁ¤ ÁöÀ»¼ö ¾ø½À´Ï´Ù.
¿¹·Î ÇÑ°¡Áö À߸øµÈ ¿¹¸¦ ¼Ò½º·Î Àû¾î µå¸±Å×´Ï Çѹø ¿¬±¸?ÇØ º¸¼¼¿ä.
#include <stdio.h>
int main(void)
{
int *ptr;
int x[10]; // x[10] ÀÌ ¾Æ´Ñ x[11] ÀÌ¸é ¿Ç°Ô µË´Ï´Ù.
int count;
ptr = &x[10];
for(count = 0 ; count <10 ; count++)
{
printf("%#010x\n",x+count);
}
printf("%#010x\n",ptr);
return 0;
}
±×¸®°í
ex) x[4]ÀÇ ÁÖ¼Ò¸¦ ³Ö°í ½ÍÀ»¶©
ptr=x;
ptr +=4;
À̶ó°í Çϼ̴µ¥.
Àú·±½ÄÀÇ Ç¥ÇöÀ¸·Î ÁÖ¼Ò ´ëÀÔÀÌ °¡´ÉÇÕ´Ï´Ù ÇÏÁö¸¸! ¹è¿Àº 0ºÎÅÍ ½ÃÀÛÇÏÁÒ?
±×·¸±â ¶§¹®¿¡
ptr = x; <- ¿ì¼± ptr ¿£ x¹è¿ÀÇ Ã¹ ¿ø¼ÒÀÎ x[0] ÀÇ ÁÖ¼Ò( &x[0] )°¡ µé¾î°¡ÁÒ.
ptr += 3; <- x¹è¿ÀÇ 4¹ø° ÁÖ¼Ò¸¦ ³Ö±â À§Çؼ± 4°¡ ¾Æ´Ñ 3À̾î¾ß ÇÕ´Ï´Ù
(0ºÎÅÍ ½ÃÀÛÇϱ⠶§¹®ÀÌÁÒ.)
±×¸®°í óÀ½ºÎÅÍ ptr ¿¡ 4¹ø° ÁÖ¼Ò¸¦ ³Ö°í ½ÍÀ¸½Ç¶§´Â
ptr = x+3; ¶Ç´Â
ptr = &x[3]; ÀÌ·¸°Ô ÇÏ½Ã¸é µË´Ï´Ù.
Áú¹®3)
µÎ°³ÀÇ Æ÷ÀÎÅ͸¦ »¬¼À¿¬»êÀ» ÅëÇؼ µÎ°³ÀÇ Â÷À̸¦ ±¸ÇÒ¼ö ÀÖ´Ù°í Çϴµ¥¿ä.
µÎ Æ÷ÀÎÅÍÀÇ Â÷À̸¦ ±¸Çؼ ¾î´À¶§ ¾²´Â°Ç°¡¿ä?
´äº¯ 3)
¹«½¼ ÀǹÌÀÎÁö Àß ¸ð¸£°Ú±º¿ä.. µÎ°³ÀÇ Â÷À̶õ ¹«¾ùÀ» ¸»ÇÏ´ÂÁö..:-]
ÈÄÈÄ :-) ÀÌ°ÍÀº Àúµµ ´Ù¸¥ ºÐÀÇ ´äº¯À» ±â´Ù·Á¾ß °Ú±º¿ä ;-)
Áú¹®4)
array[10]ÀÌ ÀÖ´Ù¸é *array ¶ó´Â Æ÷ÀÎÅÍ´Â ÀÚµ¿À¸·Î ¾µ¼ö Àִ°ÍÀΰ¡¿ä?
array[10]¿¡¼ "array"¶ó´Â À̸§ÀÌ ¾²¿´À¸¹Ç·Î "array"¶ó´Â À̸§ÀÇ º¯¼ö³ª Æ÷ÀÎÅÍ
´Â ¼±¾ðÇÒ¼ö ¾ø´Â°É·Î ¾Æ´Âµ¥¿ä..
´äº¯ 3)
Æ÷ÀÎÅÍ ¶ó´Â°ÍÀº ÁÖ¼Ò ÀÔ´Ï´Ù.
array ¶ó´Â ¹è¿¸íµµ ÁÖ¼Ò¸¦ °¡Áö°í ÀÖÁÒ.. ¹è¿ÀÇ Ã¹ ¿ø¼ÒÀÇ ÁÖ¼ÒÀÌÁÒ.
±×·¡¼ arrayÀ̶õ ¹è¿¸íµµ Æ÷ÀÎÅÍ À̱ä ÇÕ´Ï´Ù¸¸.
±× ÁÖ¼Ò °ªÀÌ º¯ÇÒ¼ö ¾ø´Â Æ÷ÀÎÅÍ »ó¼ö ÀÔ´Ï´Ù.
ÁÖ¼Ò¿¡ ÀÖ´Â °ªÀ» ¾ò¾î ³»±â À§Çؼ± * (¿¡½ºÅÍ ¸®½ºÅ©) ¸¦ »ç¿ëÇÏÁÒ.
Áï array°¡ °¡¸£Å°°í ÀÖ´Â ÁÖ¼Ò¿¡ * ¸¦ »ç¿ëÇÏ¿© °ªÀ» ³Ö¾î ¿Ã¼ö Àִ°ÍÀÌÁö.
µû·Î array ¶õ Æ÷ÀÎÅÍ º¯¼ö³ª Á¤¼ö º¯¼ö¸¦ ¼±¾ðÀ» µû·Î ½Ã½ºÅÛ ½º½º·Î ³»ºÎÀûÀ¸·Î
¼±¾ðÇ߱⿡ »ç¿ëÇÒ¼ö Àִ°ÍÀÌ ¾Æ´Õ´Ï´Ù. |
Hit : 3600 Date : 2004/01/29 06:02
|