| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1069 人关注过本帖
标题:探测数组初值问题
只看楼主 加入收藏
hurtdream
Rank: 1
等 级:新手上路
帖 子:4
专家分:0
注 册:2008-8-2
收藏
 问题点数:0 回复次数:2 
探测数组初值问题
//==================================================
// 探测数组初值
//==================================================
#include <iostream>
using namespace std;

int array1[5]={1,2,3};        //有初始化
int array2[5];            //无初始化

int main()
{
    int array3[5]={2};        //有初始化
    int array4[5];        //无初始化
    cout<<"array1: ";
    for(int i=0; i<5; i++)
        cout<<array1[i]<<" ";
    cout<<"\narray2: ";
    for(i=0; i<5; i++)
        cout<<array2[i]<<" ";
    cout<<"\narray3: ";
    for(i=0; i<5; i++)
        cout<<array3[i]<<" ";
    cout<<"\narray4: ";
    for(i=0; i<5; i++)
        cout<<array4<<" ";
    cout<<"\n";
    return 0;
}
//==================================================
源程序是这样的,编译没错误,可以运行,但是运行的结果和书上的不大一样,就array4的结果不一样,书上的结果是这个:array4: 1245072 845597673 0 0 4198406
而这个程序运行的结果是:
array4: 0012FF58 0012FF58 0012FF58 0012FF58 0012FF58
这个应该是地址啊,开始出现的不是这个,是:array4:-845597673 -845597673 -845597673 -845597673 -845597673
出现是地址的原因是我把最后一句for循环注释起来后再编译得到的,而现在运行的结果就是这个了,即使改array4的数据类型也是这个之前,之前是不一样的。这是什么原因啊?
还有我想知道的是array2这个全局变量和array4这个局部的有什么区别啊,同样是未初始化的数组为什么一个的结果是0,而另一个就不是。
谢谢大家了。
搜索更多相关主题的帖子: 初值问题 探测 std using int 
2008-08-04 11:33
很远的那颗星
Rank: 2
等 级:新手上路
威 望:4
帖 子:544
专家分:0
注 册:2008-6-30
收藏
得分:0 
第一个问题:结果是随机的,你下次试可能又会不同了,因为是末定义.


//////
还有我想知道的是array2这个全局变量和array4这个局部的有什么区别啊,同样是未初始化的数组为什么一个的结果是0,而另一个就不是。
//
这个问题我记得我看书的时候书上有解释,就在程序下面,你再看一下书吧.

Fighting~~~~~~~~
2008-08-04 16:12
hurtdream
Rank: 1
等 级:新手上路
帖 子:4
专家分:0
注 册:2008-8-2
收藏
得分:0 
函数中的局部数组是随着函数的调用而创立的,意思就是随机的吧?
2008-08-04 20:29
快速回复:探测数组初值问题
数据加载中...
 
   



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

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