标题:const char * 无法赋值给 char *
只看楼主
bbb222
Rank: 2
等 级:论坛游民
帖 子:31
专家分:54
注 册:2012-11-17
结帖率:77.78%
已结贴  问题点数:20 回复次数:5 
const char * 无法赋值给 char *
这是为什么呢 要怎么解决...
2012-11-28 00:08
mfkblue
Rank: 5Rank: 5
等 级:职业侠客
帖 子:472
专家分:343
注 册:2008-12-21
得分:4 
void main()
{
    char a[]="abcde";
    char *b;
    b=a;
    printf("%s",b);
}
2012-11-28 01:10
lz1091914999
Rank: 14Rank: 14Rank: 14Rank: 14
来 自:四川
等 级:贵宾
威 望:37
帖 子:2011
专家分:5959
注 册:2010-11-1
得分:4 
const char* a;
char* b = const_cast<char*>(a);

My life is brilliant
2012-11-28 03:21
rjsp
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:版主
威 望:507
帖 子:8890
专家分:53117
注 册:2011-1-18
得分:4 
无法赋值才是正确的,可以赋值的话那就完蛋了,C++标准何必增加const这个关键字
2012-11-28 08:57
yuccn
Rank: 16Rank: 16Rank: 16Rank: 16
来 自:何方
等 级:版主
威 望:167
帖 子:6809
专家分:42393
注 册:2010-12-16
得分:4 
可以的,强行转换就行了,这些都是在编译的时候检测而已,只要过了编译器就行。
比如:
char buff[128] = { "abcddddd" };
const char *p = buff;

{
    char *pStr = (char *)p; //
}

我行我乐
我的博客:
http://blog.yuccn. net
2012-11-28 13:14
zhuanjia0
Rank: 4
等 级:业余侠客
威 望:3
帖 子:86
专家分:232
注 册:2012-1-13
得分:4 
肯定不能复制,char* 是常量,没有分配内存地址。
你可以这样做:

const char *c = "a";
char *p = new char[20];
p = (char*)c;
delete [] p;


[ 本帖最后由 zhuanjia0 于 2012-11-28 15:05 编辑 ]
2012-11-28 14:57



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-388783-1-1.html




关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.087202 second(s), 8 queries.
Copyright©2004-2025, BCCN.NET, All Rights Reserved