常指针赋值
typedef char* pchar ;pchar fname = "oyunde" ;
pchar buf = (char *)malloc(NUM);
strcat(fname,buf);
以上定义的指针fname为一个常指针,不能对其赋值
但是为什么使用fname = "oyuddnde" ;怎么正确呢 ?
----------------解决方案--------------------------------------------------------
我怎么就没有看出来他是常指针了?
----------------解决方案--------------------------------------------------------
这是兼容的问题;
C/C++开始是没有const 关键字的。
char*p ="abc";刚开始一直是这样写。
后来C++加入到const关键字,
代码应该这样写才对的const char*p="abc";
但是由于已经有成千亿上万亿的代码是以前的那种老式写法,为了兼容只好允许啊。
----------------解决方案--------------------------------------------------------
楼上说的没错啊.支持一下
----------------解决方案--------------------------------------------------------
回复 3# 的帖子
哦原来const char*p="abc";才代表常指针
我感觉 "abc"是常数
而指针指向这个常数
所以是常指针
----------------解决方案--------------------------------------------------------