C的字符串指针一个奇怪的现象

来源:互联网 发布:centos搭建网站lamp 编辑:程序博客网 时间:2024/05/21 22:47

假设char* a;

char* b;

很多书籍上都直接*a=*b;

如果char* a 是通过a="dddd";这中形式来初始化的话,那么运行时候是会报错的。总的原因就在于char* a="dd"这中形式初始化的话,dd是作为一个常量字符串存在的。如果char a[]="dd";或者把一个字符串的数组开头赋值给a指针,那么是没有问题的。

C书籍上有这么一句话,char* a="dd";a是一个指针,其初值指向一个字符串常量,它可以被流改指向其他的地址,但是如果试图修改字符串的内容,结果是没有定义的。

这个和大家想象的不同吧呵呵。

 

原创粉丝点击