s******u 发帖数: 247 | 1 #include
using namespace std;
int main() {
int M=20;
『
int M=-303340;
cout<<"Local M="<
}
cout<<"Main M="<
}
如果我想在这个block中访问外部的M,是不是只能用指针来访问?有没有什么办法在前
面加上作用域来区分啊?
谢谢。 |
k****f 发帖数: 3794 | 2 为什么不能换个名字?
【在 s******u 的大作中提到】 : #include : using namespace std; : int main() { : int M=20; : 『 : int M=-303340; : cout<<"Local M="<: } : cout<<"Main M="<: }
|
f*********i 发帖数: 137 | 3 如果 int M 定义在main()之前做全局变量,就可以用::M
不知道你这种情况除了换个名字还能干什么
【在 k****f 的大作中提到】 : 为什么不能换个名字?
|
c***h 发帖数: 80 | 4 不能从作用域内访问外面是C++的铁律。当然你也可以通过汇编来倒着找堆栈来得到外
面M的值;)
【在 s******u 的大作中提到】 : #include : using namespace std; : int main() { : int M=20; : 『 : int M=-303340; : cout<<"Local M="<: } : cout<<"Main M="<: }
|
s******u 发帖数: 247 | 5 谢谢各位。搞清楚了。不过cpooh说不能从作用域内访问外面是C++的铁律,为什么呢?
我可以通过scope作用访问到到域外的变量啊。 |