const变量为左值,在初始化时,变量出现在等号左边。
C++全局变量的初始化,对于内置类型,如果是全局变量则初始化为0,否则未知。
#include <iostream>
using namespace std;
int a;
int main(void)
{
int b;
return 0;
}
则有a=0;b未知
const变量必须要初始化,但是如果变为
#include <iostream>
using namespace std;
const int a;//语句1
int main(void)
{
const int b;//语句2
return 0;
}
结果语句1、语句2都是错的,系统不会自动初始化a。
#include <iostream>
#include <string>
using namespace std;
const string a;
int main(void)
{
const string b;
return 0;
}
这个情况下,编译通过,因为string类型具有默认构造函数。
以上都是对于MinGW来说的,其它没有试过。