| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 354 人关注过本帖
标题:一个关于数组赋值的小问题
只看楼主 加入收藏
yxb0001
Rank: 2
等 级:论坛游民
帖 子:50
专家分:35
注 册:2009-9-9
结帖率:100%
收藏
已结贴  问题点数:20 回复次数:3 
一个关于数组赋值的小问题
#include<iostream.h>

void main()
{
    float a[5];
    int b[5];
    int i;
    for(i=0;i<5;i++)
    {
        cin>>a[i];
    }
    for(i=0;i<=5;i++)
    {
        b[i]=a[i];
    }
    cout<<"a[5]="<<a[0]<<","<<a[1]<<","<<a[2]<<","<<a[3]<<","<<a[4]<<endl;
    cout<<"b[5]="<<b[0]<<","<<b[1]<<","<<b[2]<<","<<b[3]<<","<<b[4]<<"\n";
}

运行结果:(前5行为cin输入数据)
100
2.5
7
-6
89
a[5]=0,2.5,7,-6,89
b[5]=100,2,7,-6,89
Press any key to continue

为什么a[0]与b[0]不等?为什么由前者赋值后者,而后者正确而前者不正确?
搜索更多相关主题的帖子: 赋值 
2009-09-19 12:52
qlc00
Rank: 7Rank: 7Rank: 7
等 级:黑侠
威 望:2
帖 子:157
专家分:540
注 册:2007-11-26
收藏
得分:20 
for(i=0;i<=5;i++)在这里面你多加了一个“=”造成溢出。

Anything is possible!
2009-09-19 13:41
qlc00
Rank: 7Rank: 7Rank: 7
等 级:黑侠
威 望:2
帖 子:157
专家分:540
注 册:2007-11-26
收藏
得分:0 
去掉“=”就可以了

Anything is possible!
2009-09-19 13:41
shl305
Rank: 3Rank: 3
等 级:论坛游侠
帖 子:36
专家分:121
注 册:2009-3-13
收藏
得分:0 
这种问题调试,看内存最直观了
在VC中调试时你会发现,b的地址在a的前面,也就是b后面紧接着a
所以b[5]相当于与占了a[0]的地方,因此a[0]的值会被改掉
2009-09-19 17:57
快速回复:一个关于数组赋值的小问题
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.035986 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved