| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 512 人关注过本帖
标题:为什么全局数组必须指定长度?
只看楼主 加入收藏
a874695162
Rank: 2
等 级:论坛游民
帖 子:37
专家分:15
注 册:2014-7-21
结帖率:100%
收藏
已结贴  问题点数:20 回复次数:4 
为什么全局数组必须指定长度?
程序代码:
#include "stdafx.h"

/*筛法求100之内素数*/
#include "stdafx.h"
#include<iostream>
using namespace std;
void cut();
int a[];//换成a[100],就可以通过编译
int main()
{
    int i;
    for(i=0;i<100;i++)
         a[i]=i+1;
    cut();
    int k;
    for (i=0,k=0;i<100;i++)
    {
       
        if(a[i]!=0)
        {   if(k%5==0)cout<<endl;
            cout<<a[i]<<" ";
            k=k+1;

        }
   }
    return 0;
}
void cut()
{
    int i,k;
    a[0]=0;
    for(i=2;i<100;i++)
    {
        if(a[i]!=0)
        {
            for(k=i+1;k<100;k++)
                if(a[k]%a[i]==0)a[k]=0;
        }
    }
}
我在以上程序中定义了一个一维的int数组a,未指定长度。编译时系统提示:1>asd.obj : error LNK2001: 无法解析的外部符号 "int * a" (?a@@3PAHA)
指定a的长度为100后则编译通过
为什么?求解释!
2014-08-15 16:46
yuccn
Rank: 16Rank: 16Rank: 16Rank: 16
来 自:何方
等 级:版主
威 望:167
帖 子:6815
专家分:42393
注 册:2010-12-16
收藏
得分:7 
你不指定长度,编译器不知道应该为它申请多少空间

我行我乐
公众号:逻辑客栈
我的博客:
https://blog.yuccn. net
2014-08-16 08:15
zklhp
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
来 自:china
等 级:贵宾
威 望:254
帖 子:11485
专家分:33241
注 册:2007-7-10
收藏
得分:7 
局部数组 可以不指定长度?
2014-08-16 09:15
stop1204
Rank: 9Rank: 9Rank: 9
来 自:福建省
等 级:贵宾
威 望:22
帖 子:295
专家分:1151
注 册:2013-9-8
收藏
得分:7 
就好像你向提款机取钱, 你不输入你要多少数量的钱,提款机怎么给你  

如果你不想指定长度的话,可以这样子.
 int a[] = {1,3,5};     编译器会依据后面有多少个常量来自动初始化数组下标.

a[0] == 1;
a[1] == 3;
a[2] == 5;

hl928452957@gmail点com

2014-08-16 09:41
a874695162
Rank: 2
等 级:论坛游民
帖 子:37
专家分:15
注 册:2014-7-21
收藏
得分:0 
居然忘了

加油,再加油!编程,再编程!
2014-08-17 10:24
快速回复:为什么全局数组必须指定长度?
数据加载中...
 
   



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

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