看看这段代码……

傻傻de点点 2008-03-26 01:09:27
#include <iostream>
using namespace std;
void main()
{
int ia[9]="abcdefgh";
for(int *ip=ia;*ip!="\n";++ip)
{
cout<<ip<<endl;
}
}
这是书上的一段代码,正常输出应该是:
abcdefgh
bcdefgh
cdefgh
defgh
efgh
fgh
gh
h
但是我的输出结果是一个死循环,输出大量的乱码,还伴随着主板“滴滴滴”不停地叫声。
...全文
113 17 打赏 收藏 转发到动态 举报
写回复
用AI写文章
17 条回复
切换为时间正序
请发表友善的回复…
发表回复
great3779 2008-03-26
  • 打赏
  • 举报
回复
你那段代码编译是不能通过的,
帮你修改后的代码如下:

#include <iostream>
using namespace std;

void main()
{
char ia[9]="abcdefgh";
for(char *ip=ia; *ip!='\0'; ++ip)
{
cout << ip <<endl;
}
}

Mnky 2008-03-26
  • 打赏
  • 举报
回复
把\n换成\0就好了
IT_lau 2008-03-26
  • 打赏
  • 举报
回复
int ai[]存字符怎么说啊
Kratos 2008-03-26
  • 打赏
  • 举报
回复
你的书很强悍!
IT_lau 2008-03-26
  • 打赏
  • 举报
回复
哈,我的怎么不会叫呢楼主,哈哈
p0303230 2008-03-26
  • 打赏
  • 举报
回复
\0
int -> char
ttkk_2007 2008-03-26
  • 打赏
  • 举报
回复
因为你用的是int数组,int指针,内存内容都按int型解释
liveforme 2008-03-26
  • 打赏
  • 举报
回复
2楼正解,换书吧..
xinwuxin 2008-03-26
  • 打赏
  • 举报
回复
#include <iostream>
using namespace std;
int main()
{
char ia[9]="abcdefgh";
for(char *ip=ia;*ip!='\0';++ip)
{
cout <<ip <<endl;
}
return 0;
}



#include <iostream>
using namespace std;
void main()
{
char ia[9]="abcdefgh";
for(char *ip=ia;*ip!='\0';++ip)
{
cout <<ip <<endl;
}

}

以上两个都可以
spob110 2008-03-26
  • 打赏
  • 举报
回复
看好4楼
hiblackman 2008-03-26
  • 打赏
  • 举报
回复
很好笑 学习了 :)
abupie 2008-03-26
  • 打赏
  • 举报
回复
#include  <iostream> 
using namespace std;
void main()
{
char ia[9]="abcdefgh";
//int ia[9]="abcdefgh";
for(char *ip=ia;*ip!="\n";++ip)
{
cout < <ip < <endl;
}


原来的是int数组,直接赋值"abcdefgh"会导致很多元素没有初始化.
cout的时候输出的都不知道是什么内容. 可能刚好有些是ascii响铃字符,会出现响声.
ryfdizuo 2008-03-26
  • 打赏
  • 举报
回复
什么书啊,怎么会有这种代码?
什么机子啊,怎么还叫了?
czp_opensource 2008-03-26
  • 打赏
  • 举报
回复
ascii 当中是有响铃字符的, 你的程序都不知道访问到什么地方了, 所以有可能遇到铃字符, 所以就版叫床了!
clhposs 2008-03-26
  • 打赏
  • 举报
回复
分是我的呢 呵呵 你最好换书哦

你现在那本书会误倒你的 main函数竟然没返回值
clhposs 2008-03-26
  • 打赏
  • 举报
回复

#include <iostream>
using namespace std;
int main()
{
char ia[9]="abcdefgh";
for(char *ip=ia;*ip!='\0';++ip)
{
cout <<*ip <<endl;
}
return 0;
}


不好怎么说 强烈建议你换书
傻傻de点点 2008-03-26
  • 打赏
  • 举报
回复
如果说是“cout<<ip<<endl;”该句的印刷错误(cout<<*ip<<endl)
但是为什么主板要叫?

64,690

社区成员

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

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