MQL4メモ:文字列配列の初期値について

数値配列の場合は、ArrayInitialize(object array[], double value)により初期値が設定できますが、
文字列配列ではできません。

文字列配列に値が入ってるかを確認する際などに、初期値を知っておく必要がありますが、
宣言した直後の文字列配列には、初期値として何が入っているのでしょうか。
以下のように確かめてみました。

//文字列配列を宣言
string str_sample[100];

if(str_sample[0]==false){ Print(“A”); }
if(str_sample[0]==true){ Print(“B”); }
if(str_sample[0]==””){ Print(“C”); }
if(str_sample[0]==NULL){ Print(“D”); }
if(str_sample[0]==EMPTY){ Print(“F”); }
if(str_sample[0]==EMPTY_VALUE){ Print(“G”); }

とすると出力は

>D

となり、文字列配列の初期値はNULLであることが分かります。

ちなみに、
true/falseは数値(number)としても扱われ、

Print((int)true);
Print((int)false);

とすると、それぞれ

>1
>0

となり、trueは1、falseは0と同値であることが分かります。

また、EMPTYとEMPTY_VALUEを確認すると、

Print(EMPTY);
Print(EMPTY_VALUE);

>-1
>2147483647

EMPTYは-1、EMPTY_VALUEは2147483647となっています。

コメント

タイトルとURLをコピーしました