在C语言中,存储字符串我们有两种典型的方式:指针和字符数组
- 指针方式
char *s1 = "hello";
- 数组方式
char s2[] = "hello";
两种方式的数据在内存上的分布
- 指针方式
- 数组方式
对应现象
- 指针方式定义的数组不能修改具体哪个字符,但是能够改变指针指向。
- 数组方式不能改变指向,但是能够修改具体哪个字符。
代码示例
- 指针方式
int main()
{
char *s2 = "hello";
printf("修改前: %s\n", s2);
s2 = "world";
printf("修改后: %s\n", s2);
return 0;
}
- 数组方式
int main()
{
char s1[6] = "hello";
printf("修改前: %c\n", s1[0]);
s1[0] = 'w';
printf("修改后: %c\n", s1[0]);
return 0;
}