2013-05-07 119 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