[¥Ý¥¤¥ó¥¿]
·¿ÊÑ´¹¤Ç¤Ï¤¢¤ê¤Þ¤»¤ó¤¬¡¢¥Ý¥¤¥ó¥¿¤Ë¤Ä¤¤¤Æ£²¤Ä¤Î¥µ¥ó¥×¥ë¤ò¼¨¤·¤Þ¤¹¡£
¡¦¥Ý¥¤¥ó¥¿¤Î¼¨¤¹¥¢¥É¥ì¥¹¡¢Ãæ¿È¤òɽ¼¨¤µ¤»¤Þ¤¹¡£
¡¦Ê¸»úÎó¤ò¥Ý¥¤¥ó¥¿¤ò»È¤Ã¤ÆÃÖ¤´¹¤¨¤Þ¤¹¡£
¢¡¥Ý¥¤¥ó¥¿¤Ë¤Ä¤¤¤Æ
Ä̾ï¤ÎÊÑ¿ô¤Ï¡¢Ãͤ½¤Î¤â¤Î¤ò³ÊǼ¤·¤Þ¤¹¤¬¡¢¥á¥â¥ê¾å¤Î¥¢¥É¥ì¥¹¤ò³ÊǼ¤¹¤ë¤³¤È¤Î¤Ç¤¤ëÆÃÊ̤ÊÊÑ¿ô¤ò¡¢¥Ý¥¤¥ó¥¿¤È¸Æ¤Ó¤Þ¤¹¡£
¢¡¥Ý¥¤¥ó¥¿ÊÑ¿ô¤ÎÀë¸À¡¡
¡¡Àë¸ÀÊýË¡¤Ï£²¼ïÎढ¤ê¤Þ¤¹¡£¤É¤Á¤é¤ò»È¤Ã¤Æ¤â¤«¤Þ¤¤¤Þ¤»¤ó
¡¦·¿Ì¾¤ÎÁ°¤Ë¡Ö^¡×¡Ê¥¥ã¥ì¥Ã¥È¡Ë¤òÉÕ¤±¤Æ¡¢ÊÑ¿ô¤òÀë¸À¤¹¤ë
¡¡Îã¡Ëvar c:^Char; b:^Byte; i:^Integer; d:^Double;
¡¦·¿Ì¾¤ËP¤òÉÕ¤±¤Æ¡¢ÊÑ¿ôÀë¸À¤¹¤ë
¡¡Îã¡Ëvar c:PChar; b:PByte; i:PInteger; d:PDouble;
¢¡¥Ý¥¤¥ó¥¿¤Î»ÈÍÑ
¡¥Ý¥¤¥ó¥¿ÊÑ¿ô̾¤Î¤ßµ½Ò¤¹¤ë¡¡Îã¡ËP
¡¡¢ª¥Ý¥¤¥ó¥¿ÊÑ¿ô¤Ë³ÊǼ¤µ¤ì¤Æ¤¤¤ë¥¢¥É¥ì¥¹¤Î¼¨¤¹¡¢¡Ö¥Ç¡¼¥¿¼«¿È¡×¤ò»Ø¤·¤Þ¤¹¡£
¡¡¡¡¥Ç¡¼¥¿¼«¿È¤¬¡Ö¥Ì¥ë¤Ç½ª¤ï¤ëʸ»úÎó¡×¤Î¾ì¹ç¡¢#0¡Ê¥Ì¥ë¡Ë¤Þ¤Ç¤¬½èÍýÂоݤˤʤê¤Þ¤¹
¡¡¡¡²¼¿Þ¤Î¡'abcd'¤ò»Ø¤·¤Þ¤¹
¢ÊÑ¿ô̾¤òInteger¤Ç¥¥ã¥¹¥È¤¹¤ë¡¡Îã¡Ëinteger(P)
¡¡¢ªÊÑ¿ô¤¬ÇÛÃÖ¤µ¤ì¤Æ¤¤¤ë¡¢¥á¥â¥ê¾å¤Î¥¢¥É¥ì¥¹¤ò¼¨¤·¤Þ¤¹
¡¡¡¡ÍÑÅӤϤۤȤó¤É¤¢¤ê¤Þ¤»¤ó¤¬¡¢ÊÑ¿ô¤¬¥á¥â¥ê¾å¤Î¤É¤³¤ËÇÛÃÖ¤µ¤ì¤Æ¤¤¤ë¤«¸«¤ë¤³¤È¤¬¤Ç¤¤Þ¤¹¡£»î¤·¤Æ¤ß¤Æ¡ª
¡¡¡¡²¼¿Þ¤Î¢¤Î£ÁÈÖÃϤò»Ø¤·¤Þ¤¹
£ÊÑ¿ô̾¤ÎÁ°¤Ë¡Ö@¡×¡Ê¥¢¥Ã¥È¥Þ¡¼¥¯¡Ë¤òÉÕ¤±¤ë¡¡Îã¡Ë@P
¡¡¢ª¥Ý¥¤¥ó¥¿ÊÑ¿ô¤Ë³ÊǼ¤µ¤ì¤Æ¤¤¤ë¥¢¥É¥ì¥¹¤ò¼¨¤·¤Þ¤¹¡£
¡¡¡¡¡Ö¥Ç¡¼¥¿¼«¿È¡×¤¬¥á¥â¥ê¾å¤Î¤É¤³¤Ë³ÊǼ¤µ¤ì¤Æ¤¤¤ë¤«¸«¤ë¤³¤È¤¬½ÐÍè¤Þ¤¹¡£
¡¡¡¡²¼¿Þ¤Î£¤Î¥Ç¡¼¥¿¥¢¥É¥ì¥¹¤Î£ÂÈÖÃϤò»Ø¤·¤Þ¤¹¡¡
¤¥Ý¥¤¥ó¥¿ÊÑ¿ô̾¤Î¸å¤í¤Ë¡Ö^¡×¡Ê¥¥ã¥ì¥Ã¥È¡Ë¤òÉÕ¤±¤ë¡¡Îã¡ËP^
¡¡¢ª¥Ý¥¤¥ó¥¿ÊÑ¿ô¤Î¼¨¤¹¥¢¥É¥ì¥¹¤ÎÃæ¿È¤Î£±¥Ð¥¤¥È¤ò¼¨¤·¤Þ¤¹¡£
¡¡¡¡²¼¿Þ¤Î¤¡Ç£á¡Ç¤Î£±¥Ð¥¤¥È¤ò»Ø¤·¤Þ¤¹
¿Þ¡§¥Ý¥¤¥ó¥¿ÊÑ¿ô¤Ï¥Ç¡¼¥¿¤Î¥¢¥É¥ì¥¹¤ò¥Ý¥¤¥ó¥È¤·¤Æ¤¤¤Þ¤¹
¡¡¡¡¡¡¡¡¡¡¥Ý¥¤¥ó¥¿ÊÑ¿ô¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¥Ç¡¼¥¿
¡¡£ÁÈÖÃÏ[¥Ç¡¼¥¿¤Î¥¢¥É¥ì¥¹]¡Ý¡Ý¡Ý¡ä¡¡¡¡£ÂÈÖÃÏ[ 'abcd' ]
¡¡¡¡¢¡¡¡¡¡¡¡¡¡¡£¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡£¡¡¡¡¡¡¢¤'a'¤Î¤ß
¥Ý¥¤¥ó¥¿¤Î¼¨¤¹¥¢¥É¥ì¥¹¡¢Ãæ¿È¤òɽ¼¨¤µ¤»¤Þ¤¹¡£
¡Ú¥½¡¼¥¹¥³¡¼¥É¡Û¡¡[tips0013.pas]
program tips0013;
{$APPTYPE CONSOLE}
uses SysUtils;
var
a:string;
b:PChar;
c:PChar;
begin
a:='abc';
b:=PChar(a);
WriteLn('¢¡stringÊÑ¿ô');
WriteLn('a<ÊÑ¿ô>¤Î¥¢¥É¥ì¥¹¤Ï¡¡¡¡¡¡¡¡¡¡¡¡¡¡:',IntToHex(Integer(@a),6));
WriteLn('a<ÊÑ¿ô>¤Î»Ø¤¹¥¢¥É¥ì¥¹¤Ï¡¡¡¡¡¡ :',IntToHex(Integer(a),6));
WriteLn('a<ÊÑ¿ô>¤ÎÃæ¿È¤Ï¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡:',a);
WriteLn('¢¡PCharÊÑ¿ô');
WriteLn('b(¥Ý¥¤¥ó¥¿)¤Î¥¢¥É¥ì¥¹¤Ï¡¡¡¡¡¡¡¡¡¡:',IntToHex(Integer(@b),6));
WriteLn('b(¥Ý¥¤¥ó¥¿)¤Î»Ø¤¹¥¢¥É¥ì¥¹¤Ï¡¡¡¡¡¡:',IntToHex(Integer(b),6));
WriteLn('b(¥Ý¥¤¥ó¥¿)¤Î»Ø¤¹¥¢¥É¥ì¥¹¤ÎÃæ¿È¤Ï:',b);
WriteLn('b(¥Ý¥¤¥ó¥¿)¤ÎµÕ»²¾È¤ÎÃæ¿È¤Ï¡¡¡¡¡¡:',b^);
WriteLn('¢¡PCharÊÑ¿ô ¥á¥â¥ê³ÎÊÝ');
GetMem(c,Length(a));
StrCopy(c,PChar(a));
WriteLn('c(¥Ý¥¤¥ó¥¿)¤Î¥¢¥É¥ì¥¹¤Ï¡¡¡¡¡¡¡¡¡¡:',IntToHex(Integer(@c),6));
WriteLn('c(¥Ý¥¤¥ó¥¿)¤Î»Ø¤¹¥¢¥É¥ì¥¹¤Ï¡¡¡¡¡¡:',IntToHex(Integer(c),6));
WriteLn('c(¥Ý¥¤¥ó¥¿)¤Î»Ø¤¹¥¢¥É¥ì¥¹¤ÎÃæ¿È¤Ï:',c);
WriteLn('c(¥Ý¥¤¥ó¥¿)¤ÎµÕ»²¾È¤ÎÃæ¿È¤Ï¡¡¡¡¡¡:',c^);
FreeMem(c);
end.
¡Ú¥³¥ó¥Ñ¥¤¥ë¡õ¼Â¹Ô¡Û¡¡[tips0013.bat]
dcc32 tips0013.pas
tips0013.exe > tips0013.txt
pause
¡Ú¼Â¹Ô·ë²Ì¡Û¡¡[tips0013.txt]
¢¡stringÊÑ¿ô
a<ÊÑ¿ô>¤Î¥¢¥É¥ì¥¹¤Ï¡¡¡¡¡¡¡¡¡¡¡¡¡¡:411D8C
a<ÊÑ¿ô>¤Î»Ø¤¹¥¢¥É¥ì¥¹¤Ï¡¡¡¡¡¡ :A06AA4
a<ÊÑ¿ô>¤ÎÃæ¿È¤Ï¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡:abc
¢¡PCharÊÑ¿ô
b(¥Ý¥¤¥ó¥¿)¤Î¥¢¥É¥ì¥¹¤Ï¡¡¡¡¡¡¡¡¡¡:411D90
b(¥Ý¥¤¥ó¥¿)¤Î»Ø¤¹¥¢¥É¥ì¥¹¤Ï¡¡¡¡¡¡:A06AA4
b(¥Ý¥¤¥ó¥¿)¤Î»Ø¤¹¥¢¥É¥ì¥¹¤ÎÃæ¿È¤Ï:abc
b(¥Ý¥¤¥ó¥¿)¤ÎµÕ»²¾È¤ÎÃæ¿È¤Ï¡¡¡¡¡¡:a
¢¡PCharÊÑ¿ô ¥á¥â¥ê³ÎÊÝ
c(¥Ý¥¤¥ó¥¿)¤Î¥¢¥É¥ì¥¹¤Ï¡¡¡¡¡¡¡¡¡¡:411D94
c(¥Ý¥¤¥ó¥¿)¤Î»Ø¤¹¥¢¥É¥ì¥¹¤Ï¡¡¡¡¡¡:A0D9D0
c(¥Ý¥¤¥ó¥¿)¤Î»Ø¤¹¥¢¥É¥ì¥¹¤ÎÃæ¿È¤Ï:abc
c(¥Ý¥¤¥ó¥¿)¤ÎµÕ»²¾È¤ÎÃæ¿È¤Ï¡¡¡¡¡¡:a
¢¡¥Ý¥¤¥ó¥¿°Ê³°¤ÎÊÑ¿ô¤Ë¤Ä¤¤¤Æ¤ÎÃí°Õ»ö¹à
¾åµ¤Î·ë²Ì¤«¤é¡¢stringÊÑ¿ô¤âÆâÉôŪ¤Ë¤Ï¥Ý¥¤¥ó¥¿¤Î¹½Â¤¤Ë¤Ê¤Ã¤Æ¤¤¤Þ¤¹¡£
¥Ý¥¤¥ó¥¿¤È¥Ç¡¼¥¿¤Î´Ø·¸¤ò¿Þ¤Ë¤·¤Æ¤ß¤Þ¤·¤¿¡£
¡¡¡¡¡¡¡¡¡¡ÊÑ¿ôa¤Î¥Ý¥¤¥ó¥¿¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¥Ç¡¼¥¿
¡¡£ÁÈÖÃÏ[¥Ç¡¼¥¿¤Î¥¢¥É¥ì¥¹]¡Ý¡Ý¡Ý¡ä¡¡¡¡£ÂÈÖÃÏ[ 'abc' ]
¡¡411D8C¡¡¡¡A06AA4¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡A06AA4¡¡¡¡
¡¡¡¡¡¡¡¡¡¡¥Ý¥¤¥ó¥¿b¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¥Ç¡¼¥¿
¡¡£ÁÈÖÃÏ[¥Ç¡¼¥¿¤Î¥¢¥É¥ì¥¹]¡Ý¡Ý¡Ý¡ä¡¡¡¡£ÂÈÖÃÏ[ 'abc' ]
¡¡411D90¡¡¡¡A06AA4¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡A06AA4¡¡¡¡
¡¡¡¡¡¡¡¡¡¡¥Ý¥¤¥ó¥¿c¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¥Ç¡¼¥¿
¡¡£ÁÈÖÃÏ[¥Ç¡¼¥¿¤Î¥¢¥É¥ì¥¹]¡Ý¡Ý¡Ý¡ä¡¡¡¡£ÂÈÖÃÏ[ 'abc' ]
¡¡411D94¡¡¡¡A0D9D0¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡A0D9D0¡¡¡¡
¥Ý¥¤¥ó¥¿b¤ËstringÊÑ¿ôa¤Î¥¢¥É¥ì¥¹¤ò¥»¥Ã¥È¤¹¤ë¤Ë¤Ï²¼µ¤Î£²¤Ä¤ÎÊýË¡¤¬¹Í¤¨¤é¤ì¤Þ¤¹¡£
¡¡ b:=PChar(a);
¡¡ b:=@a;
£²¤Ä¤Î·ë²Ì¤Ï°Û¤Ê¤ê¤Þ¤¹¤Î¤ÇÃí°Õ¤¬É¬ÍפǤ¹¡£
¡¡PChar¤Ç¥¥ã¥¹¥È¤¹¤ëÊýË¡¡§¡¡¥Ç¡¼¥¿Éôʬ¤Î¥¢¥É¥ì¥¹¡Ê¾åµ¤Î¿Þ¤Î£ÂÈÖÃÏ:A06AA4¡Ë¤¬³ÊǼ¤µ¤ì¤Þ¤¹¡£
¡¡@¤òÉÕ¤±¤ëÊýË¡¡¡¡¡¡¡¡¡¡¡¡§¡¡¥Ý¥¤¥ó¥¿¤Ç¤Ï¤Ê¤¤ÊÑ¿ôa¤Ï¡¢ÆâÉôŪ¤Ë¤Ï¥Ý¥¤¥ó¥¿¤Î¹½Â¤¤Ë¤Ê¤Ã¤Æ¤¤¤Þ¤¹¡£
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡ÊÑ¿ôa¤Î¥Ý¥¤¥ó¥¿Éô¡Ê¾åµ¤Î¿Þ¤Î£ÁÈÖÃÏ:411D8C¡Ë¤¬³ÊǼ¤µ¤ì¤Þ¤¹¡£
ʸ»úÎó¤ò¥Ý¥¤¥ó¥¿¤ò»È¤Ã¤ÆÃÖ¤´¹¤¨¤Þ¤¹¡£
¡Ú¥½¡¼¥¹¥³¡¼¥É¡Û¡¡[tips0013_2.pas]
program tips0013_2;
{$APPTYPE CONSOLE}
uses SysUtils;
var
S,R :string;
Sp,Rp:PChar;
begin
S:='abcabc&amss&lco&gen';
R:=' ';
Sp:=PChar(S);
Rp:=PChar(R);
while Sp^ <> #0 do
begin
case Sp^ of
'a':
Rp^:='A';
'b':
begin
StrCopy(Rp,'BBBBB');
inc(Rp,4);
end;
else
Rp^ := Sp^;
end;
inc(Sp);
inc(Rp);
end;
WriteLn(S);
WriteLn(R);
end.
¡Ú¥³¥ó¥Ñ¥¤¥ë¡õ¼Â¹Ô¡Û¡¡[tips0013_2.bat]
dcc32 tips0013_2.pas
tips0013_2.exe > tips0013_2.txt
pause
¡Ú¼Â¹Ô·ë²Ì¡Û¡¡[tips0013_2.txt]
abcabc&<>
ABBBBBcABBBBBc&<>
Copyright c 2009, ohishi,All rights reserved.