質問に答えるサンプルコードを見ています。値がvalの整数のリンクリストからすべての要素を削除します。C++構文の質問(リンクされたリスト)
コードの最初の行はif (!head) return NULL;
です。 (!head)
の意味は何ですか?私はそれが(head == NULL)
を意味すると仮定していますが、いつでもこの標準は(head == NULL)
のようなものを言っていますか?コードのこの部分については
while (h->next){
if (h->next->val == val){
h->next = h->next->next;
、なぜそれが!= NULL
一部を含めないしても大丈夫でしょうか? (例:(h->next != NULL)
)明示的に状態を記述することなく、その部分が文に暗示されていますか?
あります。あなたはそうではないと考えるかもしれません。これはリンクされたリストではありません。ほとんどの言語はこの単項演算子を持っています。 –
これはC++の基本です。あなたはC++の本やその他のC++の他の機能についての幅広い議論を見つけることができなければなりません。これは、インタチューブで完全な見知らぬ人に聞くよりも完全な情報を提供します。 –
要するに、 '0'に相当するものは' false'と解釈され、それ以外は 'true'と解釈されます。 '! 'はこれを反転させます。おそらく正確な説明ではありませんが、IMOは実用的な経験則です。それはいつも私のために働いてきました。 –