int i[i]; //line 1
它创建一个大小为 1 的 int 数组,因为索引 i 是一个初始化为 1 的常量
int j = j; //line 2
它在命名空间 y 中声明变量 j 并将其初始化为 2(常量 j 的值)
x x; //line 3
它创建了一个 struct x 类型的结构变量 x (注意:结构变量 x 与结构 x 内部的 int x 不同,int x 是结构 x 的成员
int y::y = x.x; //line 4
这在语法上是错误的,不需要用命名空间('y')来限定 int y,因为它已经存在于命名空间 y 中,所以语句应该是
int y = x.x
其中 xx 表示访问第 3 行中创建的结构变量 x 的数据成员 (int x)
命名空间示例看看这个例子,它可以帮助你清楚地理解命名空间。有关更多示例,请参阅链接 [链接] http://www.cplusplus.com/doc/tutorial/namespaces/
#include <iostream>
using namespace std;
namespace first
{
int x = 5;
int y = 10;
}
namespace second
{
double x = 3.1416;
double y = 2.7183;
}
int main () {
using namespace first;
cout << x << endl;
cout << y << endl;
cout << second::x << endl;
cout << second::y << endl;
return 0;
}
//输出
5
10
3.1416
2.7183
......Hope it helps you....:)