[讨论]char* a = "abc" 和 char a[] = "abc" 之间的区别
如题:我是这样理解的,大家看对不对
1、char* a = "abc"; 声明了一个字符类型的指针a,并为它赋值初始值为"zhf"其中字符串"zhf"应属于全局静态存储区,这里对a[1] = 'k',在编程中会出错,高手解释一下为什么?这里 a = null,可以,容易理解,因为a是指针类型。
2、char a[] = "abc"; 声明了一个字符型数组,并赋初值。这里的字符串"zhf"应该是属于堆存储区,是在局部开辟的空间。所以,这里对a[1] = 'k';是正确的。由于数组类型a相当于一个const型的指针,所以a = null;会出错。
欢迎高手纠正、补充。