#include <iostream>
using namespace std;
const int i = 1;
class T
{
public:
char arr[i];
enum{i = 2};
};
int main()
{
T a;
cout << sizeof(a.arr) << endl;
// getchar();
return 0;
}
请问为什么输出打印是1啊?为什么不是2呢?不是该从类里面查找吗?
#include <iostream>
using namespace std;
const int i = 1;
class T
{
public:
char arr[i];
enum{i = 2};
};
int main()
{
T a;
cout << sizeof(a.arr) << endl;
// getchar();
return 0;
}
请问为什么输出打印是1啊?为什么不是2呢?不是该从类里面查找吗?
3 回答1.1k 阅读✓ 已解决
1 回答995 阅读✓ 已解决
4 回答785 阅读
1 回答862 阅读
1 回答893 阅读
1 回答662 阅读
1 回答768 阅读
因为
char arr[i]
声明在enum{i = 2}
前面,所以会取全局变量i
的值。如果enum{i = 2}
在char arr[i]
之前声明,输出就是2