掲示板システム
ホーム
アクセス解析
カテゴリ
ログアウト
配列へのポインタ型へのキャストの方法 (ID:19721)
名前
ホームページ(ブログ、Twitterなど)のURL (省略可)
本文
sさん、ありがとうございます。 >> c_moji:array[0..1] of Char; >はChar型の配列であって要素数2の配列型ではありません。 わたしの認識不足かもしれませんが、 c_moji:array[0..1] of Char; と宣言し、 c_mojiと記載する方法は c_mojiの0番目の要素のアドレスを意味するとの認識でいるのですが、 ------------------------------ var c_moji:array[0..1] of Char; Str:String; begin c_moji[0] := #$31; c_moji[1] := #$31; Str := c_moji; // ←要素数2のChar型配列へのポインタをString型変数へ代入 Label1.Caption := IntToStr(Length(Str)); // ←2です ------------------------------ とした場合 Strの長さはなぜ2とわかるのでしょうか? c_moji[2]のアドレスの位置にはヌルは入っていませんでした。 わたしは、sさんから提示頂いたように >代入互換性 によって、c_mojiは「要素2のChar型配列へのポインタ」である ということをコンパイラが認識して暗黙的に String型変数に長さ2を設定していると考えているのですが。
←解決時は質問者本人がここをチェックしてください。
更新する
戻る
掲示板システム
Copyright 2021 Takeshi Okamoto All Rights Reserved.