const char * 怎样转化成 char *????

vivimimi 2006-10-10 08:44:46
请教一下const char * 怎样转化成 char *?
谢谢。。。
...全文
481 11 打赏 收藏 转发到动态 举报
写回复
用AI写文章
11 条回复
切换为时间正序
请发表友善的回复…
发表回复
angel_rabbit 2006-10-10
  • 打赏
  • 举报
回复
lz叙述清楚问题,please!
duanhuicen 2006-10-10
  • 打赏
  • 举报
回复
搂主不明白const的意思吧,为什么要转呢
yishow 2006-10-10
  • 打赏
  • 举报
回复
strcpy
wht6688 2006-10-10
  • 打赏
  • 举报
回复
上楼分析的挺好,那请问怎么才能解决呢
qtext 2006-10-10
  • 打赏
  • 举报
回复
关键还是要分析转换是否安全,例如即使用const_cast,下面的程序运行还是会出错的。
#include <stdio.h>
int main()
{
static const char ss[]="computer";
const char *p=ss;
char* pp=const_cast<char *>(p);
*pp='C';
return 0;
}
并不是使用const_cast就安全了。
pomelowu 2006-10-10
  • 打赏
  • 举报
回复
const_cast正解
xqk 2006-10-10
  • 打赏
  • 举报
回复
char* p = const_cast<char*>b;
rickerliang 2006-10-10
  • 打赏
  • 举报
回复
我想问问lz,你知道你自己在写什么吗?
为何要吧const char*转换成char*呢?
一是你调用的函数参数有问题:明明函数是需要const char*的(也就是说函数不会改变char*的内容),但函数的提供者却粗心大意忘记在char*上加上const。这个好办,你转一转型就可以了。
二是你调用的函数本身就是需要char*,因为函数内部会改变char*的内容,而你却用const char*来调用。在这种情况下,你就不应该转型了,因为如果你一旦转型,函数就会修改常量的内容,这是不能接受的,应该改用char[]来调用。
qtext 2006-10-10
  • 打赏
  • 举报
回复
vc2005下就更严格了,请参阅下面的贴子:
http://community.csdn.net/Expert/topic/5062/5062781.xml?temp=.6627924
qtext 2006-10-10
  • 打赏
  • 举报
回复
这样的转换有时并不安全
并不是所有情况下都可转换,例如,下面的程序运行引发异常

#include <stdio.h>
int main()
{
static const char ss[]="computer";
const char *p=ss;
char* pp=(char *)p;
*pp='C';
return 0;
}
Elysium 2006-10-10
  • 打赏
  • 举报
回复
const char* a;
char *b;
(char*)a=b;

16,472

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC相关问题讨论
社区管理员
  • 基础类社区
  • Web++
  • encoderlee
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

        VC/MFC社区版块或许是CSDN最“古老”的版块了,记忆之中,与CSDN的年龄几乎差不多。随着时间的推移,MFC技术渐渐的偏离了开发主流,若干年之后的今天,当我们面对着微软的这个经典之笔,内心充满着敬意,那些曾经的记忆,可以说代表着二十年前曾经的辉煌……
        向经典致敬,或许是老一代程序员内心里面难以释怀的感受。互联网大行其道的今天,我们期待着MFC技术能够恢复其曾经的辉煌,或许这个期待会永远成为一种“梦想”,或许一切皆有可能……
        我们希望这个版块可以很好的适配Web时代,期待更好的互联网技术能够使得MFC技术框架得以重现活力,……

试试用AI创作助手写篇文章吧