C ÇÁ·Î±×·¡¹Ö 9ȸ


Introduction

Á¦1ȸ

Á¦2ȸ

Á¦3ȸ

Á¦4ȸ

Á¦5ȸ

Á¦6ȸ

Á¦7ȸ

Á¦8ȸ

Á¦9ȸ

Á¦10ȸ

Á¦11ȸ

Á¦12ȸ



À̹ø °­Á ¿¡¼­´Â Æ÷ÀÎÅÍ¿¡ ´ëÇØ¼­ ¾Ë¾Æº¸µµ·Ï ÇϰڽÀ´Ï´Ù.

Æ÷ÀÎÅÍ´Â C¾ð¾î¿¡¼­ Á¤¸»·Î Áß¿äÇÏÁÒ.

C°¡ °­·ÂÇÑ ÀÌÀ¯Áß Çϳª°¡ ÀÌ Æ÷ÀÎÅÍ ¶§¹®ÀÔ´Ï´Ù.

´ëºÎºÐÀÇ »ç¶÷µéÀÌ C¾ð¾î¸¦ °øºÎÇÒ¶§ ¹Ù·Î ÀÌ Æ÷ÀÎÅ͸¦ °¡Àå ¾î·Æ°Ô »ý°¢ÇÕ´Ï´Ù. ÇÏÁö¸¸ Á¦°¡ »ý°¢Çϱ⿣ ÀÌ Æ÷ÀÎÅÍ´Â ±×·¸°Ô ¾î·Á¿î °ÍÀÌ ¾Æ´Ï¶ó°í »ý°¢ÇÕ´Ï´Ù. ¾î·Æ´Ù´Â »ý°¢À» °®Áö ¸¶½Ã°í Æ÷ÀÎÅÍ´Â Á¤¸» ½¬¿î °ÍÀ̶ó´Â »ý°¢À» °®°í ÀÌ °­Á¸¦ ÀÐ¾î º¸½Ã±â ¹Ù¶ø´Ï´Ù.

1. Æ÷ÀÎÅͰ¡ µµ´ëü ¹«¾ù?

Æ÷ÀÎÅÍÀÇ Á¤È®ÇÑ À̸§Àº 'Æ÷ÀÎÅÍÇü º¯¼ö' ÀÔ´Ï´Ù.

±×³É ÁÙ¿©¼­ Æ÷ÀÎÅͶó°í ÇÏ´Â °ÍÀÌÁÒ.

±×·³ ¿©±â¼­ Æ÷ÀÎÅÍ´Â º¯¼ö¶ó´Â°É ¾Æ¼Ì°ÚÁÒ?

º¯¼ö¿¡´Â Á¤¼ö ÇüÅÂ, ÀåÁ¤¼ö, ºÎµ¿ ¼Ò¼ýÁ¡ ¼ö, ¹®ÀÚ ÇüÅ µîµîÀÌ

ÀÖ½À´Ï´Ù. ±×·³ Æ÷ÀÎÅÍ´Â µµ´ëü ¾î¶² ÇüÅ Àϱî¿ä?

Æ÷ÀÎÅÍ´Â ¹Ù·Î ÁÖ¼Ò ÇüÅ ÀÔ´Ï´Ù. ±×·¯´Ï±î Á¤¼öµµ ¾Æ´Ï°í,

¹®ÀÚµµ ¾Æ´Ñ ¸Þ¸ð¸®ÀÇ ÁÖ¼Ò¸¦ ±â¾ï½ÃŰ´Â º¯¼ö¶ó´Â °ÍÀÌÁÒ.

Æ÷ÀÎÅÍ´Â º¯¼öÀ̰í, º¯¼ö Áß¿¡¼­µµ ÁÖ¼Ò¸¦ ±â¾ï½Ã۱â À§ÇÑ

º¯¼ö¶ó´Â °ÍÀ» ²À ±â¾ïÇØ µÎ½Ã¸é ´ÙÀ½Àº Àß ÀÌÇØ°¡ µÇ½Ç °Ì´Ï´Ù.

2. Æ÷ÀÎÅÍ´Â ¾î¶»°Ô? ¼±¾ðÀ»..

º¯¼ö´Â »ç¿ëÀü¿¡ ¼±¾ðÀ» ÇØ ÁÖ¾î¾ß ÇÕ´Ï´Ù.

Æ÷ÀÎÅÍ ¿ª½Ã º¯¼ö À̹ǷΠ¼±¾ðÀ» ÇØ ÁÖ¾î¾ß ÇϰÚÁÒ?

Æ÷ÀÎÅÍÀÇ ¼±¾ðÀº ´ÙÀ½°ú °°ÀÌ ÇÕ´Ï´Ù.

µ¥ÀÌÅÍÇüÅÂ* Æ÷ÀÎÅÍÀ̸§;

¾Æ±î Æ÷ÀÎÅÍ´Â ÁÖ¼Ò¸¦ ±â¾ï½ÃŰ´Â º¯¼ö¶ó°í Çß½À´Ï´Ù.

±×·±µ¥ ÁÖ¼Ò¿¡µµ Á¾·ù°¡ ÀÖÁÒ?

Á¤¼ö ÇüÅ º¯¼öÀÇ ÁÖ¼Ò, ¹®ÀÚ ÇüÅ º¯¼öÀÇ ÁÖ¼Ò µîµî..

ÀÌ·± ¾î¶² ÇüÅÂÀÇ ÁÖ¼ÒÀÎÁö¸¦ ÁöÁ¤ÇØ ÁÖ´Â °ÍÀÌ µ¥ÀÌÅÍÇüÅ ÀÔ´Ï´Ù.

¸¸¾à ÁÖ¼ÒÀÇ ÇüŰ¡ Ưº°È÷ Á¤ÇØÁ® ÀÖÁö ¾Ê¾Ò´Ù¸é void¸¦ ¾¸´Ï´Ù.

void¸¦ ½á¼­ Æ÷ÀÎÅ͸¦ ¼±¾ðÇÏ¸é ¾î¶² ÇüÅÂÀÇ ÁÖ¼ÒµçÁö ³ÖÀ»¼ö ÀÖÁÒ.

±×¸®°í *´Â ±× º¯¼ö°¡ Æ÷ÀÎÅÍÀÓÀ» ¾Ë¸®±â À§ÇØ ½á ÁÖ´Â °ÍÀ̰í, Æ÷ÀÎÅÍÀ̸§Àº ±× Æ÷ÀÎÅ͸¦ »ó¡ÇÏ´Â ½Éº¼ÀÔ´Ï´Ù.

¿¹¸¦ µé¾î Á¤¼ö ÇüÅÂÀÇ º¯¼öÀÇ ÁÖ¼Ò¸¦ ³Ö´Â Æ÷ÀÎÅÍ´Â

int* Pointer;

ÀÌ·¸°Ô ¼±¾ðÇÕ´Ï´Ù.

Æ÷ÀÎÅÍ ¼±¾ð½Ã *ÀÇ À§Ä¡´Â µ¥ÀÌÅÍÇüÅÂ¿Í Æ÷ÀÎÅÍÀ̸§ »çÀÌ¿¡¶ó¸é ¾î´À °÷¿¡ ¿Íµµ »ó°ü ¾ø½À´Ï´Ù.

¿¹¸¦ µé¾î ¾Æ±î Pointer¶ó´Â º¯¼ö´Â

int * Pointer;

ÀÌ·¸°Ô ¼±¾ðÇØµµ µÇ°í,

int *Pointer;

ÀÌ·¸°Ô ¼±¾ðÇØµµ »ó°ü ¾ø½À´Ï´Ù.

3. Æ÷ÀÎÅÍ ¿¬»êÀÚ

C¾ð¾î ¿¡¼­´Â Æ÷ÀÎÅÍ »ç¿ë½Ã¿¡ »ç¿ëÇÏ´Â ¿¬»êÀÚ°¡ 2°¡Áö°¡ ÀÖ½À´Ï´Ù. ±× µÎ°¡Áö´Â ±âÁ¸ÀÇ ºñÆ®º° ³í¸®°ö ¿¬»êÀÚÀÎ &¿Í °ö¼À ¿¬»êÀÚÀÎ *ÀÔ´Ï´Ù.

Æ÷ÀÎÅÍ ¿¬»êÀÚ·Î ¾²À϶§ &´Â ÁÖ¼Ò ¿¬»êÀÚ¶ó°í Çϰí, *´Â ÂüÁ¶ ¿¬»êÀÚ¶ó°í ÇÕ´Ï´Ù.


(1) ÁÖ¼Ò ¿¬»êÀÚ

ÁÖ¼Ò ¿¬»êÀÚ¶õ ¾î¶² º¯¼öÀÇ ÁÖ¼Ò¸¦ ¾ò´Â ¿¬»êÀÚ¸¦ ¸»ÇÕ´Ï´Ù.

»ç¿ë¹ýÀº ÁÖ¼Ò¸¦ ¾ò°íÀÚ ÇÏ´Â º¯¼öÀÇ ¾Õ¿¡ &¸¦ ºÙ¿© Áֱ⸸ ÇÏ¸é µÊ´Ï´Ù.

±×·¯´Ï±î

Æ÷ÀÎÅÍ = &º¯¼ö;

ÀÌ·¸°Ô ÇÏ¸é º¯¼öÀÇ ÁÖ¼Ò°¡ Æ÷ÀÎÅÍ¿¡ µé¾î°¡ÁÒ.

¿¹¸¦ µé¾î

int Variable=10;

int *Pointer;

ÀÌ·¸°Ô µÎ º¯¼ö¸¦ ¼±¾ðÇß´Ù°í ÇÒ¶§,

Pointer = &Variable;

ÀÌ·¸°Ô ÇØ ÁÖ¸é Variable¶ó´Â º¯¼öÀÇ ÁÖ¼Ò°¡ Pointer¶ó´Â º¯¼ö·Î µé¾î°©´Ï´Ù.

À̰ÍÀ» ½ÇÁ¦ ¸Þ¸ð¸® »óÀÇ ±¸Á¶¸¦ ÅëÇØ ´Ù½ÃÇѹø »ìÆìº¸ÁÒ.

óÀ½¿¡

int Variable=10;

int *Pointer;

ÀÌ·¸°Ô º¯¼ö¸¦ ¼±¾ðÇÒ ´ç½Ã´Â

º¯¼öÀ̸§ | Variable Pointer

ÁÖ¼Ò | 1 2 3 4 . . .

---------+--------------------------------------------

°ª | 10 ? ? ?

´ÙÀ½°ú °°Àº ¸Þ¸ð¸® ±¸Á¶¸¦ °®½À´Ï´Ù.

¿©±â¼­ Variable¶ó´Â º¯¼ö´Â ½ÇÀç ¸Þ¸ð¸® ÁÖ¼Ò 1À» ÇÒ´ç¹Þ¾Ò´Ù°í Çϰí, Pointer¶ó´Â º¯¼ö´Â ½ÇÀç ¸Þ¸ð¸® ÁÖ¼Ò 3À» ÇÒ´ç¹Þ¾Ò´Ù°í ÇսôÙ.

´ÙÀ½¿¡

Pointer = &Variable;

ÀÌ·¸°Ô Çϸé Pointer¶ó´Â º¯¼ö¿¡ VariableÀÇ ÁÖ¼ÒÀÎ 1ÀÌ µé¾î°¡¼­

º¯¼öÀ̸§ | Variable Pointer

ÁÖ¼Ò | 1 2 3 4 . . .

---------+--------------------------------------------

°ª | 10 ? 1 ?

ÀÌ·¸°Ô µÊ´Ï´Ù.

(2) ÂüÁ¶ ¿¬»êÀÚ

Æ÷ÀÎÅÍ´Â ÁÖ¼Ò¸¦ ±â¾ï½ÃŰ´Â º¯¼ö¶ó´Â °ÍÀ» ÀÌ¹Ì ¹è¿ü½À´Ï´Ù.

±×·¸´Ù¸é ±× ±â¾ï½Ã۰í ÀÖ´Â ÁÖ¼Ò¿¡ ±â¾ïµÇ¾î ÀÖ´Â °ªÀ» »ç¿ëÇϰųª ´Ù¸¥ °ªÀ¸·Î ¹Ù²Ü¶© ¾î¶»°Ô ÇÒ±î¿ä? ±×¶§ ÂüÁ¶ ¿¬»êÀÚÀÎ *¸¦ »ç¿ë ÇÕ´Ï´Ù.

»ç¿ë¹ýÀº

*Æ÷ÀÎÅÍ = °ª;

º¯¼ö = *Æ÷ÀÎÅÍ;

ÀÌ·± ½ÄÀ¸·Î »ç¿ëÇÏÁÒ.

ù¹øÂ°ÀÇ °æ¿ì Æ÷ÀÎÅÍ¿¡ ÀúÀåµÇ¾î ÀÖ´Â ÁÖ¼Ò¿¡ °ªÀ» ³Ö¾î ÁÜ´Ï´Ù.

µÎ¹øÂ°ÀÇ °æ¿ì´Â Æ÷ÀÎÅÍ¿¡ ÀúÀåµÇ¾î ÀÖ´Â ÁÖ¼Ò¿¡ ±â¾ïµÇ¾î ÀÖ´Â °ªÀ» º¯¼ö·Î ³Ö¾î ÁÖ°Ô µÇ°ÚÁÒ?

¿¹¸¦ µé¾î..

int Var1=10, Var2;

int *Pointer;

ÀÌ·¸°Ô ¼¼°³ÀÇ º¯¼ö¸¦ ¼±¾ðÇß°í,

Pointer = &Var1;

ÀÌ·¸°Ô Pointer¿¡ Var1ÀÇ ÁÖ¼Ò¸¦ ³Ö¾ú´Ù°í ÇսôÙ.

À̶§

*Pointer=5;

ÀÌ·¸°Ô ÇØ ÁÖ¸é Pointer¿¡ ÀúÀåµÇ¾î ÀÖ´Â ÁÖ¼Ò Áï

Var1À̶ó´Â º¯¼öÀÇ ÁÖ¼Ò¿¡ 5¸¦ ³Ö¾î ÁֹǷΠ°á±¹¿¡´Â Var1Àº 5°¡ µÊ´Ï´Ù.

±× ´ÙÀ½À¸·Î

Var2=*Pointer;

ÀÌ·¸°Ô Çß´Ù¸é Pointer¿¡ ÀúÀåµÇ¾î ÀÖ´Â ÁÖ¼Ò¿¡ µé¾îÀÖ´Â °ª,

Áï Var1¶ó´Â º¯¼öÀÇ ÁÖ¼Ò¿¡ µé¾îÀÖ´Â °ªÀÎ 5°¡ Var2¿¡µµ µé¾î°¡

Var1, Var2°¡ ¸ðµÎ 5°¡ µÇÁÒ.

ÀÌ°É ½ÇÀç ¸Þ¸ð¸® ±¸Á¶¸¦ º¸¸ç ´Ù½ÃÇѹø »ìÆì º¼±î¿ä?

óÀ½¿¡

int Var1=10, Var2;

int *Pointer;

ÀÌ·¸°Ô ¼¼°³ÀÇ º¯¼ö¸¦ ¼±¾ðÇÒ ´ç½Ã´Â

º¯¼öÀ̸§ | Var1 Var2 Pointer

ÁÖ¼Ò | 1 2 3 4 . . .

---------+--------------------------------------------

°ª | 10 ? ? ?

´ÙÀ½°ú °°Àº ¸Þ¸ð¸® ±¸Á¶¸¦ °®´Âµ¥,

¿©±â¼­ Var1¶ó´Â º¯¼ö´Â ½ÇÀç ¸Þ¸ð¸® ÁÖ¼Ò 1À» ÇÒ´ç¹Þ¾Ò°í, Var2¶ó´Â º¯¼ö´Â ½ÇÀç ¸Þ¸ð¸® ÁÖ¼Ò 2¸¦, Pointer¶ó´Â º¯¼ö´Â ¸Þ¸ð¸® ÁÖ¼Ò 4À» ÇÒ´ç¹Þ¾Ò´Ù°í ÇսôÙ.

À̶§

Pointer = &Var1;

ÀÌ·¸°Ô Pointer¶ó´Â º¯¼ö¿¡ Var1ÀÇ ÁÖ¼ÒÀÎ 1À» ³Ö¾îÁÖ¸é

º¯¼öÀ̸§ | Var1 Var2 Pointer

ÁÖ¼Ò | 1 2 3 4 . . .

---------+--------------------------------------------

°ª | 10 ? ? 1

ÀÌ·¸°Ô µÇ°ÚÁÒ?

±×¸®°í ´ÙÀ½À¸·Î

*Pointer=5;

ÀÌ·¸°Ô ÇØ ÁÖ¸é Pointer¿¡ ±â¾ïµÇ¾î ÀÖ´Â ÁÖ¼Ò Áï 1À̶ó´Â ÁÖ¼Ò¿¡ 5¸¦ ³Ö¾î ÁÖ¾î

º¯¼öÀ̸§ | Var1 Var2 Pointer

ÁÖ¼Ò | 1 2 3 4 . . .

---------+--------------------------------------------

°ª | 5 ? ? 1

ÀÌ·¸°Ô µÊ´Ï´Ù. ±×·¯¹Ç·Î Var1ÀÇ °ªÀº 5·Î ¹Ù²î°Ô µÊ´Ï´Ù.

¸¶Áö¸·À¸·Î

Var2=*Pointer;

ÀÌ·¸°Ô Çϸé Pointer¿¡ ÀúÀåµÇ¾î ÀÖ´Â ÁÖ¼Ò Áï 1À̶ó´Â ÁÖ¼Ò¿¡ µé¾îÀÖ´Â °ªÀÎ 5°¡ Var2¿¡µµ µé¾î°¡

º¯¼öÀ̸§ | Var1 Var2 Pointer

ÁÖ¼Ò | 1 2 3 4 . . .

---------+--------------------------------------------

°ª | 5 5 ? 1

ÀÌ·¸°Ô Var1°ú Var2¿¡ ¸ðµÎ 5°¡ µé¾î°¡°Ô µÇÁÒ.

4. Æ÷ÀÎÅÍ¿¡ ÃʱⰪ ÁÖ±â.

º¯¼ö´Â ¼±¾ð½Ã¿¡ ÃʱⰪÀ» ÁÙ¼ö ÀÖ¾úÁÒ?

±×·±µ¥ Æ÷ÀÎÅ͵µ º¯¼öÀ̹ǷΠ´ç¿¬È÷ ÃʱⰪÀ» ÁÙ¼ö ÀÖ°ÚÁÒ?

Æ÷ÀÎÅÍ¿¡ ÃʱⰪÀ» ÁÖ´Â ¹æ¹ýÀº ÀÏ¹Ý º¯¼ö¿Í ¶È°°½À´Ï´Ù.

±×·¯´Ï±î

int* Pointer=1;

ÀÌ·¸°Ô Çϸé 1À̶ó´Â ÁÖ¼Ò¸¦ ÃʱⰪÀ¸·Î ÁØ °ÍÀÌÁÒ.

±×·±µ¥ ¹º°¡ ÀÌ»óÇÏÁÒ?

ÁÖ¼Ò´Â Àڱ⠸¶À½µ¥·Î Á¤ÇÏ´Â°Ô ¾Æ´Ï°Åµç¿ä.

±×·¡¼­ Àú·¸°Ô ¼±¾ðÇÏ´Â »ç¶÷À» '¹Ùº¸'¶ó°í ÇÏÁÒ.

ÀϹÝÀûÀ¸·Î Æ÷ÀÎÅÍ¿¡ ÃʱⰪÀ» ÁÙ ¶§´Â

µ¥ÀÌÅÍÇü º¯¼ö;

µ¥ÀÌÅÍÇü* Æ÷ÀÎÅÍÀ̸§ = &º¯¼ö;

ÀÌ·¸°Ô ÇÕ´Ï´Ù.

¿ì¼± º¯¼ö¸¦ ¼±¾ðÇÏ°í ±× º¯¼öÀÇ ÁÖ¼Ò¸¦ ÃʱⰪÀ¸·Î ÁÖ´Â °ÍÀÌÁÒ.

¿¹¸¦ µé¾î

int Variable;

int* Pointer=&Variable;

ÀÌ·¸°Ô Çϸé Variable¶ó´Â º¯¼öÀÇ ÁÖ¼Ò°¡ Pointer¶ó´Â Æ÷ÀÎÅÍ¿¡ ÃʱⰪÀ¸·Î µé¾î°©´Ï´Ù.

5. ´Ù½ÃÇѹø Æ÷ÀÎÅÍ¿¡ ´ëÇØ Á¤¸®.

Æ÷ÀÎÅÍ¿¡ ´ëÇØ ´Ù½ÃÇѹø Á¤¸®¸¦ ÇØ º¸ÁÒ.

¿ì¼± Æ÷ÀÎÅÍ´Â º¯¼öÀ̰í, º¯¼ö Áß¿¡¼­µµ ÁÖ¼Ò¸¦ ±â¾ï½ÃŰ´Â º¯¼ö ÀÔ´Ï´Ù.

Æ÷ÀÎÅÍ ¼±¾ðÀº

µ¥ÀÌÅÍÇüÅÂ* Æ÷ÀÎÅ͸í;

ÀÌ·¸°Ô ÇØ ÁÖ¸é µÇ°í, ¿©±â¼­ µ¥ÀÌÅÍÇüÅ´ ±× Æ÷ÀÎÅͰ¡ ¾î¶² ÇüÅÂÀÇ º¯¼öÀÇ ÁÖ¼Ò¸¦ ³Ö´Â °ÍÀÎÁö¸¦ ÁöÁ¤ÇÏ´Â °ÍÀ̾úÁÒ?

´ÙÀ½À¸·Î Æ÷ÀÎÅÍ ¿¬»êÀÚ¿¡´Â ÁÖ¼Ò ¿¬»êÀÚ(&)¿Í, ÂüÁ¶ ¿¬»êÀÚ(*)°¡ Àִµ¥,

ÁÖ¼Ò ¿¬»êÀÚ´Â ¾î¶² º¯¼öÀÇ ½ÇÁ¦ ÁÖ¼Ò¸¦ ¾ò°íÀÚ ÇÒ¶§ »ç¿ëÇÏ´Â °ÍÀ¸·Î ÁÖ¼Ò¸¦ ¾ò°íÀÚ ÇÏ´Â º¯¼ö ¾Õ¿¡ ºÙ¿© Áֱ⸸ ÇÏ¸é µÇ°í¿ä.

ÂüÁ¶ ¿¬»êÀÚ´Â Æ÷ÀÎÅÍ¿¡ ÀúÀåµÇ¾î ÀÖ´Â ÁÖ¼Ò¿¡ ±â¾ïµÇ¾î ÀÖ´Â µ¥ÀÌÅ͸¦ º¯°æ½ÃŰ°Å³ª »ç¿ëÇÒ¶§ ¾²´Â °ÍÀ¸·Î, Æ÷ÀÎÅÍÀÇ ¾Õ¿¡ ºÙ¿© Áֱ⸸ ÇÏ¸é µÊ´Ï´Ù.

¿¹¸¦ µé¾î

int Variable;

int* Pointer;

ÀÌ·¸°Ô º¯¼ö µÎ°³°¡ ÀÖÀ»¶§,

Pointer=&Variable;

ÀÌ·¸°Ô Çϸé Pointer¶ó´Â Æ÷ÀÎÅÍ¿¡´Â Variable¶ó´Â º¯¼öÀÇ

ÁÖ¼Ò°¡ µé¾î°¡°í

*Pointer=10;

ÀÌ·¸°Ô Çϸé Pointer¿¡ µé¾îÀÖ´Â ÁÖ¼Ò Áï VariableÀÇ ÁÖ¼Ò¿¡ µé¾îÀÖ´Â °ªÀÌ º¯°æµÇ¹Ç·Î °á±¹Àº Variable°¡ º¯°æµÇ¾î 10ÀÌ µé¾î°¡°Ô µÇÁÒ.

¸¶Áö¸·À¸·Î Æ÷ÀÎÅÍ¿¡ ÃʱⰪÀ» ÁÙ¶§´Â ÀÏ¹Ý º¯¼ö¿Í ¶È°°À¸³ª ÁÖ¼Ò´Â ¸¶À½µ¥·Î Á¤ÇÏ´Â °ÍÀÌ ¾Æ´Ï¹Ç·Î ÀϹÝÀûÀ¸·Î ÀÏ´Ü º¯¼ö¸¦ ¼±¾ðÇÏ°í Æ÷ÀÎÅÍ¿¡´Â ±× º¯¼öÀÇ ÁÖ¼Ò¸¦ ÃʱⰪÀ¸·Î ÁÝ´Ï´Ù.

¿¹¸¦ µé¾î

int Variable;

int* Pointer=&Variable;

ÀÌ·± ½ÄÀ¸·Î.

±×·³ ¿¹Á¦¸¦ Çϳª º¸ÁÒ.

/* ÆÄÀÏ À̸§ : C9-1.C

ÇÁ·Î±×·¥ ³»¿ë : Æ÷ÀÎÅÍ ¿¹Á¦. */

#include <stdio.h>

void main()

{

int Var1, Var2;

int *pVar=&Var1;

*pVar=10;

printf("%d\n",Var1);

Var2=*pVar;

printf("%d\n",Var2);

pVar=&Var2;

*pVar=5;

printf("%d\n",Var2);

}

Çѹø Àß ºÐ¼®ÇØ º¸¼¼¿ä. ¾î¶² °á°ú°¡ ³ª¿Ã±î¿ä?

°á°ú´Â

C:\>C9-1.EXE

10

10

5

C:\>

ÀÌ·¸°Ô ³ª¿È´Ï´Ù. ÀÌÀ¯´Â Àß ºÐ¼®ÇØ º¸½Ã¸é ¾Ë°Ô µÊ´Ï´Ù.

6. Æ÷ÀÎÅÍÀÇ ¹è¿­

Æ÷ÀÎÅ͸¦ ¹è¿­·Î ¸¸µé¼ö°¡ ÀÖÀ»±î¿ä?

´ç¿¬È÷ ÇÒ¼ö ÀÖ°ÚÁÒ? C·Î´Â ¸øÇÏ´Â°Ô ¾øÀ¸´Ï.. Æ÷ÀÎÅÍÀÇ ¹è¿­À» ¸¸µå´Â °ÍÀº Á¤¸» ½±½À´Ï´Ù.

ÀÏ¹Ý º¯¼öÀÇ ¹è¿­¿¡ ´ëÇØ¼­´Â ¹è¿ü´Âµ¥ ±×°Å¶û ¶È°°ÀÌ ÇÏ¸é µÇÁö¸¸ ´ÜÁö µ¥ÀÌÅÍÇüÅÂ¿Í Æ÷ÀÎÅ͹迭¸í »çÀÌ¿¡ *¸¦ ³Ö¾î ÁÖ¸é µÇÁÒ.

±×·¯´Ï±î

µ¥ÀÌÅÍÇüÅÂ* Æ÷ÀÎÅ͹迭¸í[Å©±â];

ÀÌ·¸°Ô ÇØ ÁÖ¸é µÊ´Ï´Ù.

¿¹¸¦ µé¾î Á¤¼ö ÇüÅÂÀÇ º¯¼öÀÇ ÁÖ¼Ò¸¦ ÀúÀåÇÏ´Â 10°³ÀÇ ¿ø¼Ò¸¦ °¡Áø Æ÷ÀÎÅ͹迭Àº

int* PointerArray[10];

ÀÌ·¸°Ô ¼±¾ðÇÏÁÒ.

2Â÷¿ø ¹è¿­ ¿ª½Ã ÀÏ¹Ý ¹è¿­°ú ¶È°°Áö¸¸ ´ÜÁö *¸¸ ³Ö¾î ÁÖ¸é µÇÁÒ.

±×·¯´Ï±î

int* PointerArray[10][10];

ÀÌ·± ½ÄÀ¸·Î ÇØ ÁÖ¸é µÇÁÒ. ±×¸®°í 3Â÷¿ø ¹è¿­Àº

int* PointerArray[10][10][10];

ÀÌ·± ½ÄÀ¸·Î Çϰí¿ä.

7. Æ÷ÀÎÅ͸¦ ¾îµð¿¡ ½á¸ÔÁö?

Áö±Ý±îÁö Æ÷ÀÎÅÍ¿¡ ´ëÇØ ¹è¿ü½À´Ï´Ù.

±×·±µ¥ ÀÌ Æ÷ÀÎÅ͸¦ °ú¿¬ ¾îµð¿¡ ½á¸ÔÀ»¼ö ÀÖÀ»±î¿ä?

Àú¹ø °­Á¿¡¼­ ÀÏ¹Ý º¯¼ö¸¦ ÇÔ¼ö È£Ãâ½Ã Àμö·Î ÀüÇØÁÖ¸é

´ÜÁö º¯¼ö¿¡ µé¾îÀÖ´Â °ªÀ» º¹»çÇØ¼­ ÀüÇØÁÖ´Â Passing by value¶ó´Â È£Ãâ ¹æ¹ýÀ» ¾´´Ù´Â °ÍÀ» ¹è¿ü½À´Ï´Ù.

±×¸®°í ¹è¿­ÀÇ °æ¿ì ±× ÁÖ¼Ò¸¦ ÀüÇØ ÁÖ´Â Passing by reference¶ó´Â ¹æ¹ýÀ» ¾´´Ù´Â °Íµµ ¾Ë¾ÒÁÒ.

±×·³ ÀÏ¹Ý º¯¼ö¸¦ Passing by reference·Î ÀüÇØ ÁÙ¼ö´Â ¾øÀ»±î¿ä?

Æ÷ÀÎÅ͸¦ ÀÌ¿ëÇϸé À̰ÍÀÌ °¡´ÉÇÕ´Ï´Ù.

¿ì¼± ¹æ¹ýÀ» ¾Ë¾Æº¸±â Àü¿¡ ¿¹Á¦ Çϳª¸¦ º¸ÁÒ.

/* ÆÄÀÏ À̸§ : C9-2.C

ÇÁ·Î±×·¥ ³»¿ë : Æ÷ÀÎÅÍ ¿¹Á¦. */

#include <stdio.h>

void func(int data)

{

data=10;

}

void main()

{

int var=1;

func(var);

printf("%d\n",var);

}

ÀÌ ¼Ò½º´Â Passing by value¸¦ »ç¿ëÇÏ´Â ÇÔ¼ö ¿¹Á¦ ÀÔ´Ï´Ù.

funcÇÔ¼ö¿¡¼­´Â data¸¦ 10À¸·Î ¹Ù²åÁö¸¸ mainÇÔ¼öÀÇ varÀº ¹Ù²îÁö ¾Ê°í °á±¹¿£ 1ÀÌ Ãâ·ÂµÇÁÒ.

±×·³ ÀÌ°É Passing by reference·Î ¹Ù²ã º¸ÁÒ.

¹Ù²Ü·Á¸é °ú¿¬ ¾î¶»°Ô ÇØ¾ß ÇÒ±î¿ä? ¿ì¼± funcÇÔ¼ö ºÎÅÍ °íÃÄ¾ß °ÚÁÒ?

Passing by reference´Â ÁÖ¼Ò¸¦ Àü´Þ ¹Þ´Â °ÍÀÌ´Ï Àμö¸¦ Æ÷ÀÎÅÍ·Î ¹Ù²ãÁÖ¾î¾ß °Ú±º¿ä.

void func(int* data)

{

data=10;

}

ÀÌ·¸°Ô ¸»ÀÌÁÒ. ±×·±µ¥ ¿©±â¼­ ¹Ù²Ü°Ô Çϳª ´õ ³²¾ÒÁÒ?

data´Â ÀÌÁ¦ Æ÷ÀÎÅÍÀ̹ǷΠ»ç¿ë½Ã¿¡´Â ÂüÁ¶ ¿¬»êÀÚ¸¦ ½á¼­ »ç¿ëÇØ¾ß °ÚÁÒ?

Áï

void func(int* data)

{

*data=10;

}

ÀÌ·¸°Ô ¹Ù²ã¾ß ÇÏÁÒ. ±×·³ funcÇÔ¼ö´Â ´Ù °íÃÆ³×¿ä.

±×·±µ¥ mainÇÔ¼ö¿¡¼­µµ ¹Ù²Ü°Ô ÀÖÁÒ? funcÇÔ¼ö¸¦ È£ÃâÇÒ ¶§ ±×³É º¯¼ö¸¦ º¸³»¸é ¾ÊµÇ°í ÁÖ¼Ò¸¦ º¸³»¾ß ÇÏÀݾƿä.

±×·¯¹Ç·Î

func(&var);

ÀÌ·¸°Ô È£ÃâÇØÁÖ¸é µÇ°ÚÁÒ?

ÀÌ·¸°Ô ÇØ¼­ ¹Ù²Û ¼Ò½º¸¦ º¸µµ·Ï ÇÏÁÒ.

/* ÆÄÀÏ À̸§ : C9-3.C

ÇÁ·Î±×·¥ ³»¿ë : Æ÷ÀÎÅÍ ¿¹Á¦. */

#include <stdio.h>

void func(int* data)

{

*data=10;

}

void main()

{

int var=1;

func(&var);

printf("%d\n",var);

}

ÀÌ·¸°Ô µÇ°Ú³»¿ä. ±×·³ ÀÌÁ¨ Passing by reference·Î È£ÃâÇÏ°Ô µÊ´Ï´Ù.

±×·¯¹Ç·Î 1ÀÌ ¾Æ´Ñ 10ÀÌ Ãâ·ÂµÇ°Ô µÇÁÒ.

ÀÌ·¸°Ô ÇØ¼­ À̹ø °­Á´ ¸¶Ä¡µµ·Ï ÇϰڽÀ´Ï´Ù.

´ÙÀ½ °­Á¿¡¼­´Â Æ÷ÀÎÅÍ¿Í ¹è¿­ÀÇ °ü°è¿¡ ´ëÇØ ¾Ë¾Æº¸ÁÒ.