码迷,mamicode.com
首页 > 其他好文 > 详细

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

时间:2020-03-12 12:57:43      阅读:86      评论:0      收藏:0      [点我收藏+]

标签:指针   修改   ons   赋值   null   数组   类型   组类型   出错   

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" 之间的区别

标签:指针   修改   ons   赋值   null   数组   类型   组类型   出错   

原文地址:https://www.cnblogs.com/huangji-bupt/p/12468311.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!