-2

重複の可能性:
C の char s[] と char *s の違いは何ですか?
char a[] = “string”; の違いは何ですか? および char *p = 「文字列」;

C言語で以下の2つの文字列宣言の違いを知りたい

char *myString = "This is a C character string";

char myString[] = "This is a C character array";

最初のものはポインターで、2番目は配列であることは知っていますが、違いはわかりませんでした。

4

1 に答える 1

1

Binyamin Sharet の回答に加えて、最初のケースではmyStringポインターを変更できますが、2 番目のケースでは変更できません。したがって、このコードはコンパイルして実行し、「ello」を出力します。

#include <stdio.h>

int main(int argc, char **argv)
{
    char *myString = "Hello\n";

    myString++;

    printf("%s", myString);
}

しかし、このコードはコンパイルされません:

#include <stdio.h>

int main(int argc, char **argv)
{
    char myString[] = "Hello\n";

    myString++;

    printf("%s", myString);
}
于 2012-05-16T05:59:32.150 に答える