avatar
请教一个作用域的问题# Programming - 葵花宝典
s*u
1
#include
using namespace std;
int main() {
int M=20;

int M=-303340;
cout<}
cout<}
如果我想在这个block中访问外部的M,是不是只能用指针来访问?有没有什么办法在前
面加上作用域来区分啊?
谢谢。
avatar
k*f
2
为什么不能换个名字?

【在 s******u 的大作中提到】
: #include
: using namespace std;
: int main() {
: int M=20;
: 『
: int M=-303340;
: cout<: }
: cout<: }

avatar
f*i
3
如果 int M 定义在main()之前做全局变量,就可以用::M
不知道你这种情况除了换个名字还能干什么

【在 k****f 的大作中提到】
: 为什么不能换个名字?
avatar
c*h
4
不能从作用域内访问外面是C++的铁律。当然你也可以通过汇编来倒着找堆栈来得到外
面M的值;)

【在 s******u 的大作中提到】
: #include
: using namespace std;
: int main() {
: int M=20;
: 『
: int M=-303340;
: cout<: }
: cout<: }

avatar
s*u
5
谢谢各位。搞清楚了。不过cpooh说不能从作用域内访问外面是C++的铁律,为什么呢?
我可以通过scope作用访问到到域外的变量啊。
相关阅读
logo
联系我们隐私协议©2024 redian.news
Redian新闻
Redian.news刊载任何文章,不代表同意其说法或描述,仅为提供更多信息,也不构成任何建议。文章信息的合法性及真实性由其作者负责,与Redian.news及其运营公司无关。欢迎投稿,如发现稿件侵权,或作者不愿在本网发表文章,请版权拥有者通知本网处理。