一个问题5。

afeisky 2003-02-20 10:57:02
#include <stdio.h>
#include <string.h>
main()
{
char a[]="AAA",*b="BBB";
strcpy(a,"123");
printf("a=%s ",a);
strcpy(b,"123"); //编译通过,但运行中会出现内存不用写。
printf("b=%s ",b);
}
//看来,a[]与*b还是有区别的。

//哪位大虾能就这个问题进行更深刻的论述?


...全文
58 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
afeisky 2003-02-20
  • 打赏
  • 举报
回复
谢谢大家!
Jinhao 2003-02-20
  • 打赏
  • 举报
回复
上面我的代码再最后加个 delete b; 才完整
cache2002 2003-02-20
  • 打赏
  • 举报
回复
.....
Jinhao 2003-02-20
  • 打赏
  • 举报
回复
这样可以通过
#include <stdio.h>
#include <string.h>
main()
{
char a[]="AAA",*b=new char[4];//b不是常量字符了
strcpy(a,"123");
printf("a=%s ",a);
strcpy(b,a);
printf("b=%s ",b);
}
windcsn 2003-02-20
  • 打赏
  • 举报
回复
a 是数组,在定义的时候初始化赋值了,是一个临时变量,值当然可以修改
b却是一个指针,只向常量字符串,所以他指向的地址内容不能被修改

70,037

社区成员

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

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