2
char p[3][6]={{'a','b','c','\0'},{'d','e','f','\0'},{'g','h','i','\0'}};
char s[3][6]={"abc","def","ghi"};

両方とも同じですか?異なる場合は、どのように、どのようにメモリに保存されているかを説明してください。

4

2 に答える 2

2

2 つの方法のいずれにも違いはありません。次のコードを試して
結果を確認してください。変数 p と s の結果は同じです。

  • 最初の定義では、一重引用符を使用して文字配列の形式で文字列を指定しました。
  • 2番目の定義では、二重引用符で直接文字列を指定しました-両方とも同じです

  #include<stdio.h>
    void main()
    {
        int i,j=0;
        char p[3][6]={{'a','b','c','\0'},{'d','e','f','\0'},{'g','h','i','\0'}};
        char s[3][6]={"abc","def","ghi"};
        for(i=0;i<3;i++)
        {
            printf("%s",p[i]);
            printf("\n");
        }
        for(i=0;i<3;i++)
        {
            printf("%s",s[i]);
            printf("\n");
        }
    }

結果は次のとおりです。

First 2-d string is : abc        def     ghi
Second 2-d string is :abc        def     ghi
于 2013-06-02T02:36:58.993 に答える