NULLは常に偽ですか?
2023-11-16 22:58:44
質問
と考えてもよいのでしょうか?
NULL
は常にCでfalseに変換されると考えてよいでしょうか?
void *somePtr = NULL;
if (!somePtr) {
/* This will always be executed? */
}
の値に対する明示的なチェックが必要でしょうか。
NULL
の値に対して明示的なチェックを行うべきでしょうか?
どのように解決するのですか?
はい、そうです。 C 言語では、0 以外の値は真、0 の値は偽と見なされるため、NULL は偽と評価されます。 NULL は本質的に
zero
アドレスであり、比較ではそのように扱われ、ブール値チェックでは int に昇格すると思います。 私は、おそらくチェックを明示的に行うでしょうが、このコードは C に精通した人なら誰でも読むことができると期待しています。
C および C++ プログラミングでは、2 つの NULL ポインターが等しいかどうかを比較することが保証されています。 ANSI C では、どのような NULL ポインタも 0 に等しいことが保証されています。 ポインタは0に等しくなることが保証されています。 ANSI C では、任意の NULL ポインタが整数型との比較で 0 になることが保証されています。 さらに、マクロ NULL が定義されています。 はヌルポインタの定数として定義されています。 値 0 (整数型として、もしくは void へのポインタに変換されます)であり、したがって と比較されます。 NULL と比較されます。
関連
-
[解決済み] JavaScriptで空文字列/未定義文字列/null文字列をチェックするにはどうすればよいですか?
-
[解決済み] SQLiteのINSERT/per-secondのパフォーマンスを向上させる
-
[解決済み] JavaScriptでNULL、未定義、空白の変数をチェックする標準的な関数はありますか?
-
[解決済み] 変数が「未定義」または「NULL」であるかどうかを判断するにはどうすればよいですか?
-
[解決済み] なぜ、オブジェクトそのものではなく、ポインタを使用しなければならないのですか?
-
[解決済み] instanceofを呼び出す前にnullチェックは必要ですか?
-
[解決済み] JavaScriptのnullとundefinedの違いは何ですか?
-
[解決済み] Pythonでnullオブジェクトを参照する
-
[解決済み] カラムの変更:NULLをNOT NULLに変更する
-
[解決済み】このC関数は常にfalseを返すべきですが、そうではありません。
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
libc++abi.dylib: NSException タイプの捕捉されない例外で終了するエラー
-
#137: 式は変更可能なlvalueでなければならない問題 // 文字列配列の代入問題
-
C 言語のポインタ配列のポインタ型、ポインタに値を割り当てるために配列名を使用、コンパイル時の警告:互換性のないポインタ型からの初期化
-
コンパイルエラー:可変長オブジェクトが初期化されていない可能性があります。
-
[解決済み] C言語の書式指定子 %ul と %lu の違いは何ですか?
-
[解決済み] ⑭と⑯は何のためにあるのですか?
-
[解決済み] なぜmemsetではなくbzeroを使用するのですか?
-
[解決済み] .aファイル、.soファイルとは何ですか?
-
[解決済み] FortranはC言語よりも重い計算を最適化しやすいですか?
-
[解決済み] 2次元配列の反復処理において、ループの順序がパフォーマンスに影響するのはなぜですか?