#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呢?不是该从类里面查找吗?
拥有18年软件开发和IT教学经验。曾任多家上市公司技术总监、架构师、项目经理、高级软件工程师等职务。 网络人气名人讲师,...
因為char arr[i]宣告在enum{i = 2}前面,所以會取全域變數i的值。如果enum{i = 2}在char arr[i]之前就聲明,輸出就是2
char arr[i]
enum{i = 2}
i
因為
char arr[i]
宣告在enum{i = 2}
前面,所以會取全域變數i
的值。如果enum{i = 2}
在char arr[i]
之前就聲明,輸出就是2