为啥不输出结果呢

renzaijiang 2006-12-12 03:50:02
#include"iostream.h"
char a[100]=" ";
char *arr="basfasfsafasdasd";
void main()
{
char *temp=a;
*temp++=*arr++;
cout<<temp;//我觉得应该输出b 可是是空白
}
...全文
130 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
renzaijiang 2006-12-12
  • 打赏
  • 举报
回复
楼上正解 这点我咋就没想到了 大头鬼
看来多写程序要才能知道细节
blue_zyb 2006-12-12
  • 打赏
  • 举报
回复
*temp++ = *arr++后,temp指向a末尾的'\0'
-------------------
改一下:
*temp++ = *arr++后,temp加1,temp指向a数组的第二个元素,而a数组的初始化的时候除了第一个元素为space 字符以外,其余的都是'\0'
blue_zyb 2006-12-12
  • 打赏
  • 举报
回复
cout << a ;输出才是b

*temp++ = *arr++后,temp指向a末尾的'\0'
cout << temp; 自然不会有输出
renzaijiang 2006-12-12
  • 打赏
  • 举报
回复
但是我 cout<<a;结果是b
而temp指向a的啊
kangji 2006-12-12
  • 打赏
  • 举报
回复
while(*arr) {
*temp++=*arr++;
}
cout<<a;
taodm 2006-12-12
  • 打赏
  • 举报
回复
a里有100个字符呢。你至少加了100次再说。
而且,加了100次也不保证是加到arr。因为arr的地址完全可以比a小。

64,676

社区成员

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

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