tell me why

solomon 2001-09-29 03:40:53
char *p1 = 'abcd';
char p2[] = 'cdef'
char *q;

q = p2;
*q = 'z'; <--- ok!

q = p1;
*q = 'z'; <--- error!

cout << p;

...全文
103 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
wxhwxh 2001-11-06
  • 打赏
  • 举报
回复
char *p1 = 'abcd';
{const _temp='abcd';char *p1;p1=&_temp;}
char p2[] = 'cdef'
{const _temp='cdef';char p2[](_temp);}大概是这个意思,语法上肯定不对
char *q;

q = p2;
*q = 'z'; <--- ok!

q = p1;
*q = 'z'; <--- error!

cout << p;
chxr 2001-11-06
  • 打赏
  • 举报
回复
这个问题可以看看<effective..>的条款21。下面的注释讲的比较清楚了。。
还一个你写法有问题 : 'cdef'or "cdef"?
solomon 2001-11-06
  • 打赏
  • 举报
回复
我想知道底层的东西
阎罗 2001-09-29
  • 打赏
  • 举报
回复
指针常量是不可以再赋值的
plainchow 2001-09-29
  • 打赏
  • 举报
回复
这段程序好象有不少错误哦。
gop 2001-09-29
  • 打赏
  • 举报
回复
up

这个问题最近被问过了
xiumu 2001-09-29
  • 打赏
  • 举报
回复
p1指针指向的内容是常数,所以不能付值。

69,373

社区成员

发帖
与我相关
我的任务
社区描述
C语言相关问题讨论
社区管理员
  • C语言
  • 花神庙码农
  • 架构师李肯
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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