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

char* A ;char*B strcpy(A,B)出错

时间:2014-11-30 16:56:53      阅读:146      评论:0      收藏:0      [点我收藏+]

标签:ar   使用   sp   on   bs   代码   ef   nbsp   学习   

今天突然用到strcpy()函数

于是

char* A = "ABCDEFG";

char* B = "GGGG";

strcpy(A,B);

编译通过,但是运行竟然直接结束了,报错;

 

为什么呢?

因为char * A = “ABCDEFG”;

"ABCDEFG"这是个const性质的,那么它存在于静态存储区,A指针指向静态存储区,但是不能改变它的值

所以不能使用strcpy函数

 

而 char a[] = "abcdf";

char b[] = "cds"

strcpy(a,b);

可以达到想要的效果,因为

char a[] = "abcdef";这个“abcdef”还是在静态存储区,但是会有有一份副本用于初始化数组a在栈上;

所以可以修改!

 

 

很多知识敲代码遇到错误才会学会,上面的原因用到的知识点以前知道,但是还是写出了错误的代码,错了才思考为什么错的,然后才想起来学过的知识点;

所以多写代码!!!在错误中学习。

 

 

char* A ;char*B strcpy(A,B)出错

标签:ar   使用   sp   on   bs   代码   ef   nbsp   学习   

原文地址:http://blog.csdn.net/djb100316878/article/details/41623627

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