在C++中,建议先在主程序内部或外部声明全局变量,然后再进行其他操作?我是说,这两者的区别是什么
#include <iostream>
int variable;
int main()
{ //my program
return 0;
}和
#include <iostream>
int main()
{
int variable;
//my program
return 0;
}在哪种情况下,我应该使用哪一个?
发布于 2016-04-08 00:46:43
在第一种情况下,可以从文件中的所有其他函数访问variable (即它具有全局作用域),而在第二种情况下,它只能从main中访问。通常,最好将使用的全局变量的数量保持在绝对最小,以避免污染变量空间(以及其他几个原因)。
示例:
本地到主网络,
int main(void) {
int v;
foo();
return 0;
}
void foo() {
v = 5; // compiler error: v not declared in this scope
}全局的,
int v;
int main(void) {
foo();
return 0;
}
void foo() {
v = 5; // compiles, v declared globally
}发布于 2016-04-08 00:47:51
第一种情况下的variable是一个全局变量。它可以从main()以外的函数访问;保证在程序执行之前一直有效;并且在第一次使用前设置为0。
在第二个示例中,variable是一个函数局部变量。除非由程序员设置,否则它不会被初始化为任何内容,只能在main()内访问,并且在main()终止之前将被清除。最后一点对于main()来说并不是特别重要,但对于其他函数来说却要重要得多。
https://stackoverflow.com/questions/36482383
复制相似问题