6-3-¶ó.C++ÀÇ ÂüÁ¶È£Ãâ

C¾ð¾î´Â Æ÷ÀÎÅ͸¦ »ç¿ëÇÏ¿© ÂüÁ¶ È£Ãâ Èä³»¸¦ ³½´Ù. C++Àº Æ÷ÀÎÅ͸¦ ÀÌ¿ëÇÏ´Â ¹æ¹ý¿Ü¿¡ ·¹ÆÛ·±½º¶ó´Â °³³äÀ¸·Î ÂüÁ¶ È£ÃâÀ» Ãß°¡·Î Áö¿øÇÑ´Ù. ´ÙÀ½ ¿¹Á¦ÀÇ plusref2ÇÔ¼ö°¡ C++ÀÇ ·¹ÆÛ·±½º¸¦ »ç¿ëÇÏ¿© ÂüÁ¶ È£ÃâÀ» ÇÏ´Â ¿¹ÀÌ´Ù.

 

¿¹ Á¦ : CallRef2

#include <Turboc.h>

 

void plusref2(int &a);

 

void main()

{

     int i;

 

     i=5;

     plusref2(i);

     printf("°á°ú=%d\n",i);

}

 

void plusref2(int &a)

{

     a=a+1;

}

 

int &a¶ó´Â Á» ÀÌ»óÇÑ Å¸ÀÔÀ» »ç¿ëÇϴµ¥ À̰ÍÀÌ ·¹ÆÛ·±½ºÀÌ´Ù. È£ÃâºÎ¿¡¼­´Â &i°¡ ¾Æ´Ñ i¸¦ Àü´ÞÇϸç ÇÔ¼öÀÇ º»Ã¼¿¡¼­´Â *a¸¦ ¾²Áö ¾Ê°í a¸¦ ¹Ù·Î ¾´´Ù. C++ÀÇ ·¹ÆÛ·±½º¿¡ ´ëÇØ¼­´Â 15Àå¿¡¼­ »ó¼¼ÇÏ°Ô ´Ù·ç¹Ç·Î ¿©±â¼­´Â ±¸°æ¸¸ ÇØ º¸°í ³Ñ¾î°¡±â·Î ÇÏÀÚ. Áö±Ý ´Ü°è¿¡¼­ ·¹ÆÛ·±½º¸¦ ³íÇÏ´Â °ÍÀº ¼ø¼­¿¡ ¸ÂÁö ¾Ê´Ù. C++ÀÌ ÂüÁ¶ È£ÃâÀ» À§ÇØ ·¹ÆÛ·±½º¶ó´Â »õ·Î¿î °³³äÀ» Áö¿øÇϱâ´Â ÇÏÁö¸¸ CÀÇ Æ÷ÀÎÅ͸¦ ÀÌ¿ëÇÑ ÂüÁ¶ È£Ãâµµ ¾Ë¾Æ µÎ¾î¾ß ÇÑ´Ù.

C¾ð¾îÀÇ Æ÷ÀÎÅ͸¦ ÅëÇÑ ÂüÁ¶ È£ÃâÀº »ç½Ç ¾ö¹ÐÇÑ ÀǹÌÀÇ ÂüÁ¶ È£ÃâÀ̶ó°í º¼ ¼ö ¾ø´Ù. ¿Ö³ÄÇϸé À̶§µµ ÇÔ¼ö·Î Àü´ÞµÇ´Â °ÍÀº º¯¼ö ±× ÀÚü°¡ ¾Æ´Ï¶ó º¯¼öÀÇ ¹øÁö°ª(Address Value)À̶ó´Â Ư¼öÇÑ °ªÀ̱⠶§¹®ÀÌ´Ù. C´Â ¾ðÁ¦³ª °ª¸¸ Àü´ÞÇÑ´Ù. ´Ù¸¸ ÀÌ ¹øÁö°ªÀ¸·Î ½ÇÀμö¸¦ Á¶ÀÛÇÒ ¼ö ÀÖµµ·Ï Èä³»¸¸ ³¾ ¼ö ÀÖÀ¸¸ç Èä³»¸¦ ÅëÇØ ÂüÁ¶ È£Ãâ È¿°ú°¡ ¹ß»ýÇÒ »ÓÀÌ´Ù. ±×·¡¼­ ȤÀÚ´Â C¾ð¾î´Â ÂüÁ¶ È£ÃâÀ» Áö¿øÇÏÁö ¾Ê´Â´Ù°í ÁÖÀåÇÑ´Ù. ÀÌ´Â ¹®¹ýÀûÀ¸·Î´Â »ç½ÇÀÌÁö¸¸ ½ÇÁ¦·Î´Â Æ÷ÀÎÅ͸¦ ÅëÇØ ÂüÁ¶ È£Ãâ°ú µ¿ÀÏÇÑ È¿°ú¸¦ ³¾ ¼ö ÀÖÀ¸¹Ç·Î ´Ù¼Ò ºñ¾àÀûÀΠǥÇöÀ̶ó°í ÇÒ ¼ö ÀÖ´Ù.

C¾ð¾îÀÇ ÇÔ¼ö È£Ãâ¹æ½ÄÀº ¸ðµÎ °ª È£Ãâ ¹æ½ÄÀÌµÇ ÆíÀÇ»ó Æ÷ÀÎÅ͸¦ ÅëÇÑ È£ÃâÀ» ÂüÁ¶ È£ÃâÀ̶ó°í ºÎ¸¦ »ÓÀÌ´Ù. ±×·¸´Ù¸é C++ÀÇ °æ¿ì´Â ¾î¶°ÇÒ±î? C++ÀÇ ·¹ÆÛ·±½º´Â CÀÇ Æ÷ÀÎÅ͸¦ »ç¿ëÇÏ´Â ¹æ¹ýº¸´Ù´Â ´õ ¹ßÀüµÈ ¹æ¹ýÀÌÁö¸¸ À̰͵µ ¾ö¹ÐÇÏ°Ô µûÁö¸é °ª È£ÃâÀÌ´Ù. ´ÙÀ½¿¡ ·¹ÆÛ·±½º¸¦ ±í°Ô ¹è¿ö º¸¸é ¾Ë°ÚÁö¸¸ ·¹ÆÛ·±½º´Â ³»ºÎÀûÀ¸·Î Æ÷ÀÎÅ͸¦ Èä³»³½´Ù. µû¶ó¼­ ·¹ÆÛ·±½º¸¦ »ç¿ëÇÑ ÂüÁ¶ È£ÃâÀº Æ÷ÀÎÅ͸¦ Èä³»³»¾î ÂüÁ¶ È£ÃâÀ» Èä³»³»´Â ¾ÆÁÖ ±â¸¸ÀûÀÎ ÂüÁ¶ È£ÃâÀÏ »ÓÀÌ´Ù.