-1

次のプログラムでは、行 5 でエラーが発生しますが、行 11 ではエラーが発生しませんが、どちらも同じことを行っています。つまり、文字列を 0 で初期化していますか? 私はそれがコンパイラエラーを与えることをよく知っています.5行目でエラーが発生した場合、なぜ11行目でエラーが発生しないのでしょうか?

#include<stdio.h>
int main()
{
    char name[20]=0;   //This should also run if line 11 runs without an error where string is being initialized by zero.
    struct node
    {
        char name[20];
        int no;
    };
    struct node a={0};
}
4

4 に答える 4

1

5 行目は次のようになります。

char name[20] = {'\0'};
于 2013-08-29T08:53:23.917 に答える
0

線は同じではありません。

5 行目は、char 配列を整数で初期化しようとしています。

11 行目は、0 - '\0' で初期化された文字列で構造体を初期化します。

于 2013-08-29T08:58:05.287 に答える
0

ブラケットを忘れているだけだと思います。そのようにコンパイルしてみてください構造体ではなくてchar name[20]={0}name配列なので、これらの括弧を追加して初期化する必要があります

于 2013-08-29T08:54:26.307 に答える