2013-05-07 156 views
0

无法弄清楚为什么这段代码给出错误。全局变量初始化查询

在编译
#include<iostream> 
#include <stdio.h> 
#include <stdlib.h> 
using namespace std; 
unsigned long long A[102]; 
A[0]=2; 
int main() 
{ 
    cout<<"OK"; 
} 

错误:

prog.cpp:6:1: error: ‘A’ does not name a type 

但这工作正常。

#include<iostream> 
#include <stdio.h> 
#include <stdlib.h> 
using namespace std; 
unsigned long long A[102]; 
int main() 
{ 
    A[0]=2; 
    cout<<"OK"; 
} 

可能是什么原因?

回答

2

A[0]=2; 

不是初始化,这是一个分配的A第一个元素。你不能在功能之外做到这一点。

这是初始化,并且是合法的:

#include<iostream> 

unsigned long long A[102] = {2}; 

int main() 
{ 
    std::cout<<"OK\n"; 
} 

将第一元素2和所有其余设置为0