字符串中碰见的char* a = "abc" 和 char a[] = "abc" 之间的区别

Posted huangji-bupt

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了字符串中碰见的char* a = "abc" 和 char a[] = "abc" 之间的区别相关的知识,希望对你有一定的参考价值。

char* a = "abc";

声明了一个字符类型的指针a,并为它赋值初始值为"abc",a的值是字符串"abc"的首地址【第一个字符的地址】

 其中字符串"abc"应属于全局静态存储区,这里对a[1] = ‘a‘,在编程中会出错,简而言之就是只可读,不能够修改。

 

 

char a[] = "abc";

声明了一个字符型数组,并赋初值。这里的字符串"abc"应该是属于堆存储区,是在局部开辟的空间。

所以,这里对a[1] = ‘b‘;是正确的。由于数组类型a相当于一个const型的指针,所以a = null;会出错。可修改

以上是关于字符串中碰见的char* a = "abc" 和 char a[] = "abc" 之间的区别的主要内容,如果未能解决你的问题,请参考以下文章

java中如何将数字1转为转为字符'1'和字符串“1”

C语言截取字符串的第一个字符

java中如何判断输入的数是不是符合为四位整数这个条件?

Java新人,关于String类中,private final char value[],到底是数组本身不可变还是数组中的值不可变

c++字符串长度函数

Java中abcdef这样的字符串,怎么用split函数解析为string数组