为什么编译后只有0

lalamonkey 2008-11-06 06:55:24
int main()
{
const size_t array_size=7;
int ia1[]={0,1,2,3,4,5,6};
int ia2[array_size];
for(size_t ix=0;ix!=array_size;++ix)
ia2[ix]=ia1[ix];
cout<<ia2[array_size]<<endl;
return 0;
}
...全文
152 12 打赏 收藏 转发到动态 举报
写回复
用AI写文章
12 条回复
切换为时间正序
请发表友善的回复…
发表回复
flypanda 2008-11-06
  • 打赏
  • 举报
回复
啊 看错题了 不好意思
flypanda 2008-11-06
  • 打赏
  • 举报
回复
ia2[ix]=ia1[ix];
cout < <ia2[array_size] < <endl;
这两句话
{ia2[ix]=ia1[ix];
cout < <ia2[array_size] < <endl;}

不然运行一次,自然返回0啦
lalamonkey 2008-11-06
  • 打赏
  • 举报
回复
哦 ^_^
lalamonkey 2008-11-06
  • 打赏
  • 举报
回复
恩 是啊 粗心了
lalamonkey 2008-11-06
  • 打赏
  • 举报
回复
我解决拉~~ ^_^

int main()
{
const size_t array_size=7;
int ia1[]={0,1,2,3,4,5,6};
int ia2[array_size];
for(size_t ix=0;ix!=array_size;++ix)
{ia2[ix]=ia1[ix];
cout<<ia2[ix]<<endl;}
return 0;
}
主要问题是访问数组元素.
wangjkk 2008-11-06
  • 打赏
  • 举报
回复
你的编码习惯有待改进...

两句以上的for语句,你不用{}括号起来直接执行,能得到自己想要的结果吗????

xuedaoli 2008-11-06
  • 打赏
  • 举报
回复
你定义的array_size = 7
怎么用到了7呢,数组下标才0-6,7就越界了
int ia2[array_size];
cout < <ia2[array_size] < <endl; (越界了,ia2[array_size-1]就是最后一个了)
lalamonkey 2008-11-06
  • 打赏
  • 举报
回复
恩 我再试试~
刚才我添加了一句 cout<<ia1[7]<<endl;
输出值为7 和0,所以和3楼说的没有关系~~ 不过 仍3Q~
matrixcl 2008-11-06
  • 打赏
  • 举报
回复

int main()
{
const size_t array_size=7;
int ia1[]={0,1,2,3,4,5,6};
int ia2[array_size];
for(size_t ix=0;ix!=array_size;++ix)
ia2[ix]=ia1[ix];
//cout <<ia2[array_size] <<endl; //ia2[array_size]访问的是ia2[7],属于越界访问,结果不可预知

for(size_t ix=0;ix!=array_size;++ix) //改成这样
cout <<ia2[ix] <<endl;
return 0;
}
wangjkk 2008-11-06
  • 打赏
  • 举报
回复
晕,你自己return 0;
不返回0,返回多少???
再有,不要写成
++ix,与ix++有本质的区别

通常的习惯都是写成ix++

除非特别的需要
lalamonkey 2008-11-06
  • 打赏
  • 举报
回复
还是不对~
la_feng 2008-11-06
  • 打赏
  • 举报
回复
for(size_t ix=0;ix!=array_size;++ix)
++ix改成ix++看看

65,211

社区成员

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

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