瑜伽网站模版,wordpress html 单页模板,程序员自己做网站赚钱,国外 网站源码理解C中变量的作用域
常规变量#xff08;如前面定义的所有变量#xff09;的作用域很明确#xff0c;只能在作用域内使用它们#xff0c;如果您在作用域外使用它们#xff0c;编译器将无法识别#xff0c;导致程序无法通过编译。在作用域外面#xff0c;变量是未定义的…理解C中变量的作用域
常规变量如前面定义的所有变量的作用域很明确只能在作用域内使用它们如果您在作用域外使用它们编译器将无法识别导致程序无法通过编译。在作用域外面变量是未定义的实体编译器对其一无所知。 为了更好地理解变量的作用域 以下是个不错的示例
#include iostream
using namespace std;void MultiplyNumbers ()
{cout Enter the first number: ;int firstNumber 0;cin firstNumber;cout Enter the second number: ;int secondNumber 0;cin secondNumber;// Multiply two numbers, store result in a variableint multiplicationResult firstNumber * secondNumber;// Display resultcout firstNumber x secondNumber;cout multiplicationResult endl;
}int main ()
{cout This program will help you multiply two numbers endl;// Call the function that does all the workMultiplyNumbers();// cout firstNumber x secondNumber;// cout multiplicationResult endl;return 0;
}输出
This program will help you multiply two numbers
Enter the first number: 51
Enter the second number: 24
51 x 24 1224分析
请注意不能在函数 MultiplyNumbers( )外面使用变量 firstNumber 和 secondNumber。如果您取消对 main() 中第 28 或 29 行的注释将出现编译错误而错误很可能是标识符未声明undeclared identifier。 这是因为变量 firstNumber 和 secondNumber 的作用域为局部被限定在声明它的函数内这里为 MultiplyNumbers()。局部变量只能在这样的范围内使用即从声明它的语句开始到当前函数的末尾。标识函数结束的花括号 }也限定了函数内部声明的变量的作用域。函数结束后将销毁所有局部变量并归还它们占用的内存。 编译时在 MultiplyNumbers() 内部声明的变量在该函数结束时不再存在如果在 main() 中使用它们程序将无法通过编译因为在 main() 中这些变量未声明。
警告
如果您在 main() 声明另一组同名变量就不能指望它们的值与您在 MultiplyNumbers()中赋给同名变量的值相同。
编译器将 main() 中声明的变量视为独立的实体即便它们与另一个函数中声明的变量同名因为这些变量的作用域不同。该文章会更新欢迎大家批评指正。
推荐一个零声学院免费公开课程个人觉得老师讲得不错 分享给大家LinuxNginxZeroMQMySQLRedis fastdfsMongoDBZK流媒体CDNP2PK8SDocker TCP/IP协程DPDK等技术内容点击立即学习: 服务器课程C服务器