首页 > 代码库 > char*和char[]的区别
char*和char[]的区别
通过这边随笔的学习,终于搞清楚为什么在之前两篇随笔"静态内存"和"strcpy函数学习"中遇到的dest传入char*会导致段错误的原因。
例子:
#include<stdio.h> int main(void) { char* str1="string string string string"; char str2[]="string string string string"; printf("str1=%s\n",str1); printf("str2=%s\n",str2); str2[0]=‘p‘; printf("str2=%s\n",str2); str1[0]=‘p‘; printf("str1=%s\n",str1); return 0; }
运行结果:
str1=string string string string
str2=string string string string
str2=ptring string string string
Segmentation fault (核心已转储)
从上面例子可以看到:
1.char*和char[]都可以表示字符串
2.char[]可读可写,可以修改字符串的内容。char*可读不可写,写入就会导致段错误(具体原因不清楚)
因此可以解释,当直接对char*类型的指针变量写入数据时,会导致段错误,需要使用char[]
char*和char[]的区别
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。