c字符串和字符数组的区别

字符数组是一个数组,每个元素的值都可以改变。而字符串指针指向的是一个常量字符串,它被存放在程序的静态数据区,一旦定义就不能改变。这是最重要的区别

//会报错
 #include <stdio.h>

 int main()
 {
     char *p = "ab";
     printf("%s\n", p);

     *p++ = 'c';
     p--;
     printf("%s\n", p);
     return 0;
 }


//不会报错
#include <stdio.h>

 int main()
 {
     char *p ;
     char arr[3] = {'a', 'b'};
     p = arr;
     printf("%s\n", p);

     *p++ = 'c';
     p--;
     printf("%s\n", p);
     return 0;
 }

 


版权声明:本文为tongnianhani原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。