3

以下はなぜOKなのですか?

    char *a;
    char b[]="asdf";
    a=b;

しかし、次はそうではありませんか?

    char a[10];
    char b[]="asdf";
    a=b;

上記はエラーを返します: 割り当てに互換性のない型があります。

4

5 に答える 5

1

どちらも大丈夫ではありません。

多分あなたは試みていた、

char *a;
char b[]="asdf";
a=b;
于 2013-03-15T03:20:46.887 に答える
0
char a;
char b[]="asdf";
a=b;

ここでは、タイプの配列のアドレスを割り当てbています。アドレスのサイズは 4 バイト (64 ビット m/c では 8 バイト) になり、1 バイト変数に割り当てるため、値は切り捨てられます。これは合法ですが、役に立ちません。acharchara

b実際に配列の最初の文字を に割り当てようとしていると思いますa。その場合はa = b[0].

于 2013-03-15T03:26:37.323 に答える
-3

C++ の strcpy_s 関数を使用してください。構文が &dest,*source であると役立つ場合があります。

于 2015-08-17T05:17:25.097 に答える