在C++语言中,声明变量全局是否有任何缺点?
void foo()
{
int a;
a=10;
}
int a;
void foo()
{
a=10;
}
Run Code Online (Sandbox Code Playgroud)
他们之间有什么不同?
是否最好使用全局变量,例如:
int bumNum;
int extraNum;
bool isIt;
void setup()
{
std::cin >> bumNum;
std::cin >> extraNum;
isIt= false;
}
void anotherFunc()
{
//do something with the global variables
}
int main()
{
setup();
anotherFunc();
return 0;
}
Run Code Online (Sandbox Code Playgroud)
或局部变量,例如:
void setup(int& bumNum, int& extraNum, bool& isIt)
{
std::cin >> bumNum;
std::cin >> extraNum;
isIt= false;
}
void anotherFunc(int& bumNum, int& extraNum, bool& isIt)
{
//do something with the global variables
}
int main()
{
int bumNum;
int extraNum;
bool isIt;
setup(bumNum, …Run Code Online (Sandbox Code Playgroud) 所以,似乎'i'几乎就是C++中的通用计数器.似乎在每个for循环中,人们重新初始化'i'.我不得不问,他们为什么不在全球范围内初始化'我'?'i'仍然需要在每个循环中重新定义,所以我不明白为什么会有任何混淆.
它看起来像这样:
#include <iostream>
int i=0;
int main()
{
for (i=0;i<3;i++)
{
std::cout << i << "\n";
}
for (i=0;i<5;i++)
{
std::cout << "hello" << "\n";
}
return 0;
}
Run Code Online (Sandbox Code Playgroud)
比以下内容更容易阅读,编写速度更快:
#include <iostream>
int main()
{
for (int i=0;i<3;i++)
{
std::cout << i << "\n";
}
for (int i=0;i<5;i++)
{
std::cout << "hello" << "\n";
}
return 0;
}
Run Code Online (Sandbox Code Playgroud)