当前位置: 代码迷 >> C语言 >> 常指针赋值
  详细解决方案

常指针赋值

热度:234   发布时间:2008-01-12 01:18:40.0
常指针赋值
typedef char* pchar ;

pchar fname = "oyunde" ;
pchar buf = (char *)malloc(NUM);
   
strcat(fname,buf);
以上定义的指针fname为一个常指针,不能对其赋值
但是为什么使用fname = "oyuddnde" ;怎么正确呢 ?
搜索更多相关的解决方案: 赋值  常指针  fname  pchar  buf  

----------------解决方案--------------------------------------------------------
我怎么就没有看出来他是常指针了?
----------------解决方案--------------------------------------------------------
这是兼容的问题;
C/C++开始是没有const 关键字的。
char*p ="abc";刚开始一直是这样写。
后来C++加入到const关键字,
代码应该这样写才对的const char*p="abc";
但是由于已经有成千亿上万亿的代码是以前的那种老式写法,为了兼容只好允许啊。
----------------解决方案--------------------------------------------------------
楼上说的没错啊.支持一下
----------------解决方案--------------------------------------------------------
回复 3# 的帖子

原来const char*p="abc";才代表常指针
我感觉 "abc"是常数
而指针指向这个常数
所以是常指针
----------------解决方案--------------------------------------------------------
  相关解决方案