一道题?

cqgaoke 2006-10-15 06:36:24
1.请问以下代码有什么问题:
int main()
{
char a;
char *str=&a;
strcpy(str,"hello");
printf(str);
return 0;
}
有什么错?
char* s="AAA";
printf("%s",s);
s[0]='B';
printf("%s",s);
有什么错?
...全文
220 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
cqgaoke 2006-10-17
  • 打赏
  • 举报
回复
我是先学了现在的,然后在回归原来的.
taodm 2006-10-17
  • 打赏
  • 举报
回复
汗!TC2.0。
兄弟,你都在用啥年代的书学C/C++呀!
TC2.0已是17年前的软件了!!!!
赶快扔了!换devcpp
不然,你根本就不知道楼上那些兄弟们都在说啥。
cqgaoke 2006-10-16
  • 打赏
  • 举报
回复
lj860603(键键):可以把A换成B呀,我测试了的.TC2.0
ctu_85 2006-10-15
  • 打赏
  • 举报
回复
另外字符串操作别忘了string.h
ctu_85 2006-10-15
  • 打赏
  • 举报
回复
(1).请问以下代码有什么问题:
int main()
{
char a;
char *str=&a;
strcpy(str,"hello");
printf(str);
return 0;
}
str(字符数组1,字符串2);
其中字符数组1必须写成数组名形式,字符串2可以是字符数组名也可以是一个字符串常量
你这里str只是一个指针,不是字符数组
(2)
char* s="AAA";
printf("%s",s);
s[0]='B';
printf("%s",s);
有什么错?
结果是对的,s[0]也即*(s+0)
lj860603 2006-10-15
  • 打赏
  • 举报
回复
char* s="AAA"; //s指向的内容存储在静态区域,不可以修改内容
printf("%s",s);
s[0]='B'; //所以这里你试图修改编译器就会报错啦
printf("%s",s);
lj860603 2006-10-15
  • 打赏
  • 举报
回复
strcpy(str,"hello");

//没有给str分配空间啊,可以这样做:str= (char *)malloc(100 * sizeof(char));
weijiangshanwww 2006-10-15
  • 打赏
  • 举报
回复
int main()
{
char a;
char *str=&a;
strcpy(str,"hello");
printf(str);
return 0;
}
非法访问,over
weijiangshanwww 2006-10-15
  • 打赏
  • 举报
回复
char* s="AAA";
相当与
const char* s="AAA";
你若要更改就会出错

64,662

社区成员

发帖
与我相关
我的任务
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++ 技术论坛(原bbs)
社区管理员
  • C++ 语言社区
  • encoderlee
  • paschen
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
  1. 请不要发布与C++技术无关的贴子
  2. 请不要发布与技术无关的招聘、广告的帖子
  3. 请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下

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