可能重复:
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";
我知道第一个是指针,第二个是数组,但我无法区分。
可能重复:
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";
我知道第一个是指针,第二个是数组,但我无法区分。
除了 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);
}