web-dev-qa-db-ja.com

最初の要素がnullである文字配列の初期化

私は最近、コード行と4つのオプションに直面しました。

char fullName[30] = {NULL};
  1. A)最初の要素にはNULL文字が割り当てられます。

  2. B)配列のすべての要素に0(ゼロ)が割り当てられます

  3. C)配列のすべての要素にNULLが割り当てられている

  4. D)配列が空です。

私たちが選択した答えはオプションCでした。これは、配列が単一のNULLでのみ初期化されるのに対し、C++は配列の残りの部分にNULLを入力するためです。

しかし、教授は反対し、答えはAであると述べた。

したがって、最初の要素はNULLであり、表示すると、最初の要素であるNULLが表示されます。

引用は質問全体を示しています。他に提供された情報はありませんでした。私はどちらが正しいのか、そして誰かがその答えが正しい理由を説明できるかどうか知りたいです。

41
Jay B

どうやら、あなたの教授は正しいです、どのように見てみましょう

char someName [6] = "SAAD";

文字列名がメモリでどのように表されるか:

0 1 2 3 4 5

S A A D

配列ベースのC文字列

文字列を構成する個々の文字は、配列の要素に格納されます。文字列はnull文字で終了します。 null文字の後の配列要素は文字列の一部ではなく、その内容は関係ありません。

「null文字列」とは、最初の文字がnull文字の文字列です。

0 1 2 3 4 5

/ 0

ヌルCストリング

NULL文字列の長さは0です。

0
Saad Khalid