入門C++
講座を始めました。以下のような質問があります。
センチネル値のデータ型は常にboolean
? 正しいか間違っているか?
標準で見つかったセンチネル値の例を見てみましょう。
ヌル終了バイト文字列 (NTBS) は、定義された内容を持つ最上位アドレスの要素の値がゼロ (終了ヌル文字) である文字シーケンスです。シーケンス内の他の要素の値はゼロではありません。
しかし、この文字シーケンス (およびそれを終了する値ゼロ) はどのようなタイプでしょうか?
文字シーケンスは、として宣言
A
できる配列オブジェクトです。T A [N]
T
char
unsigned char
signed char
const
volatile
Sentinel 値は必ずしもブール型である必要はありません。最適な Sentinel 値/データ型を決定するプログラム ロジックによって異なります。
ここでいくつかの例を参照してください:-
ウィキから
以下に、一般的なセンチネル値とその使用例をいくつか示します。
- ヌル終了文字列の終わりを示すヌル文字
- リンクされたリストの終わりを示すためのヌルポインタ
- 負でない整数のシーケンスの終わりを示す負の整数
- ファイルの終わり。特定の入力ルーチンによって返される非文字値で、ファイルからこれ以上文字を使用できないことを通知します。
- High Values。ビジネス プログラミングで使用される 16 進数の 0xFF のキー値
したがって、すべては「センチネル」をどのように定義するかによって異なります