-2

可能重复:
C 中的 char s[] 和 char *s 有什么区别?
char a[] = “string”; 和有什么区别?和 char *p = “字符串”;

我想知道下面两个 C 语言中的字符串声明有什么区别

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

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

我知道第一个是指针,第二个是数组,但我无法区分。

4

1 回答 1

1

除了 Binyamin Sharet 的回答,在第一种情况下您可以更改myString指针,但在第二种情况下您不能。因此,这段代码将编译并运行并打印“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 回答