±ÍÇÏ´Â ¼Õ´Ô À̽ʴϴÙ
·Î±×ÀÎ
ȸ¿ø°¡ÀÔ
  
  µ¨¸¶´ç °ø½Ä ÀºÇà°èÁÂ
  ÇϳªÀºÇà 227-910235-83607
  ¿¹±ÝÁÖ ÀÌ»ó±¹(¿î¿µÁø)
ÇÁ·ÎÁ§Æ® °Ô½ÃÆÇ
ÅõÇ¥°Ô½ÃÆÇ
µ¨¸¶´ç¼Ò°³
±âÃʺÎÅÍ È°¿ë±îÁö! µ¨ÆÄÀÌ ±³À° - µ¥ºê±â¾î
°­ÁÂ, ÆÁ, Á¤º¸ °­ÁÂ, ÆÁ, Á¤º¸ ÀÔ´Ï´Ù.
±Û³»¿ë - °­ÁÂ, ÆÁ, Á¤º¸
 [angel] Æ÷ÀÎÅÍ 1
Ÿ¶ôõ»ç
(±è¼ºÈÆ)
2014-12-13 ¿ÀÈÄ 7:26:45
Ä«Å×°í¸®: ÆÁ
4486ȸ Á¶È¸



µî·ÏµÈ ÆÄÀÏÀÌ ¾ø½À´Ï´Ù.
¾È³çÇϼ¼¿ä. Å¸¶ôõ»ç ÀÔ´Ï´Ù.

³×À̹ö À¥Å÷ Áß¿¡ "µ§¸¶" ¶ó´Â ¸¸È­¿¡ X, Y ÁÂÇ¥¸¦ ¾Ë¸é ¾îµð¿¡ ÀÖµçÁö ¹Ù²ãÄ¡±â ÇÒ ¼ö Àִ ´É·ÂÀÌ ³ª¿É´Ï´Ù.
Àá±ä »ç¹«½ÇÀÇ Àá±ä ±Ý°í ¾ÈÀÇ ¹Ú½º ¾ÈÀÇ ¹°°ÇÀ» ¹Ù²ãÄ¡±â Çصµ ¾î¶² Â¡Á¶³ª ¾î¶² Áõ°Åµµ ¾ø½À´Ï´Ù.

Æ÷ÀÎÅʹ ¾Ë°í Àִ µ¥ÀÌÅÍÀÇ ÁÂÇ¥¸¦ ÀÌ¿ëÇØ µ¥ÀÌÅ͸¦ ¼öÁ¤ Çϴ °Í ÀÔ´Ï´Ù.


0. Æ÷ÀÎÅÍ 

** C/C++
  int* pNum;     // integer pointer
  char* pText;   // char pointer
.. 
  *pNum = 123456;
  *pText = 'C';

** Delphi 
  pNum: ^integer; // integer pointer
  pText: ^Char;   // char pointer
...
  pNum^ := 123456;
  pText^ := 'C';


1. µ¨ÆÄÀÌ¿Í Æ÷ÀÎÅÍ

µ¨ÆÄÀÌ¿¡¼± C/C++ °ú ´Þ¸® Æ÷ÀÎÅ͠ŸÀÔ¿¡ ÁÖÀÇ ÇÏ¿©¾ß ÇÕ´Ï´Ù.

** C/C++ ¿¡¼± ¾î¶² Å¸ÀÔÀÇ Æ÷ÀÎÅÍÀ̵破ëÀÔ ÇÒ ¼ö ÀÖ½À´Ï´Ù.

int* pNum;
char* pText;
...
pNum = pText;
pText = pNum; 

** Delphi ¿¡¼± ´Ù¸¥ Å¸ÀÔÀÇ Æ÷ÀÎÅ͸¦ ´ëÀÔ Çϸ頿¡·¯·Î °£ÁÖ ÇÕ´Ï´Ù.

pNum: PInteger;
pText: PChar;
...
pNum := pText; // ¿¡·¯. Pointer Type ÀÌ ´Ù¸¨´Ï´Ù.


2. char* vs PChar

C/C++ ÀÇ char* °ú Delphi PChar ´Â ¿ÏÀüÈ÷ °°½À´Ï´Ù.


3. Æ÷ÀÎÅ͠ŸÀÔ ¿¡·¯ Ã³¸®

Æ÷ÀÎÅ͸¦ »ç¿ëÇϸé ÀÚÀ¯·Ó°Ô µ¥ÀÌÅ͸¦ »ç¿ë ÇÒ ¼ö Àִµ¥, Å¸ÀÔ ¿¡·¯°¡ ³ª¸é ºÒÆí ÇÕ´Ï´Ù.

Pointer typeÀ¸·Î wrapping Çϸ頵˴ϴÙ.
Pointer type Àº Å¸ÀÔ ¾ø´Â Æ÷ÀÎÅÍ ÀÔ´Ï´Ù.

pNum: PInteger;
pText: PChar;
...
pNum := Pointer(pText); // Pointer Type ¿¡·¯ ¾È³²


4. String °ú PChar

String ¿¡ ´ëÇؼ­ À妽º·Î Á¢±Ù Çϴ ¹æ¹ý( sTemp[n] ) °ú Æ÷ÀÎÅͷΠÁ¢±Ù Çϴ ¹æ¹ý( PChar )ÀÌ ÀÖ½À´Ï´Ù.

Delphi ¿¡¼­´Â String À» À妽º·Î Á¢±Ù Çϴ ³»ºÎ ÇÔ¼ö°¡ ÃÖÀûÈ­ µÇ¾î À־,
sTemp[n] ¹æ¹ýÀÌ pTemp^ ¹æ¹ý º¸´Ù Á¶±Ý ºü¸£°Å³ª ºñ½ÁÇÏ´Ù°í ÇÕ´Ï´Ù.

¿¹) String ÀÇ "," ¸¦  "=" ·Î º¯°æ (³»¿ë Áß¿¡ " ' "ÀÌ µé¾î°¡¸é ¿Ã¶ó°¡Áö ¾Ê¾Æ¼­ " " " ·Î º¯°æ)
  sTemp: string
  pTemp: PChar;
  i: integer;
...
  for i := 1 to Length(sTemp) do  // À妽º·Î Á¢±Ù ¹æ¹ý
  begin
    if sTemp[i] = "," then
      sTemp[i] := "=";
    ...
  end;
...
  pTemp := PChar(sTemp); // Æ÷ÀÎÅͷΠÁ¢±Ù Çϴ ¹æ¹ý
  for i := 1 to Length(sTemp) do
  begin
    if pTemp^ = "," then
      pTemp^ := "=";
    pTemp := pTemp + 1;
    ...
  end;