> C の char がポインタ型だからと,Delphi で
Delphi だと変数を宣言する時の変数の型の部分 (右側) で決まりますが,
C の場合は「型と変数名」で決まります.
char a 1 バイトの文字の変数
char b[10] 10 バイトの文字列の変数
char c[] 文字列の変数
char *d ポインタ型の文字列の変数
文字列の最後は Null 終端文字でなければなりません.
ただし,文字列を代入する時にダブルクォーテーションを使用すると,自動的に
Null 終端文字を追加してくれます.
C++ には string 型という文字列の型があります.
PChar 型は Null 終端文字列のポインタ型です.つまり,上の
char *d
と同じです.
char に P がついていますが,
Char (1 文字の変数型) のポインタ型ではありません.
が,PChar を Char (1 文字) のポインタという見方をすると,
文字列の先頭アドレス (1 文字目のアドレス) という見方もできなくはない ?
かも知れません.
また,変数をポインタ型の変数として使用する際,
var
LpValue : ^TAnyType;
のような使用方法はお勧めできません.ポインタ型を宣言して使用した方がいいでしょう.
type
PAnyType = ^TAnyType;
var
LpValue : PAnyType;
|