4大作用域 簡述4種類型的變量及其作用范圍分別是哪些?
簡述4種類型的變量及其作用范圍分別是哪些?局部變量可以分為動態(tài)局部變量(沒有特殊聲明的變量通常是動態(tài)局部變量)和靜態(tài)局部變量(用static關鍵字聲明的變量,如static int a)。兩者的區(qū)別在
簡述4種類型的變量及其作用范圍分別是哪些?
局部變量可以分為動態(tài)局部變量(沒有特殊聲明的變量通常是動態(tài)局部變量)和靜態(tài)局部變量(用static關鍵字聲明的變量,如static int a)。
兩者的區(qū)別在于靜態(tài)局部變量的生存期比動態(tài)局部變量的生存期長,動態(tài)局部變量的生存期在定義的范圍內(nèi)。如果在函數(shù)中定義,則函數(shù)結束,變量結束,變量的值將不會保存。
并且靜態(tài)變量的生存期是整個源程序(也可以說它是一個文件,在不同的環(huán)境中調(diào)用不同)。兩者的范圍是相同的。它只能在定義它的函數(shù)中工作。沒有這個功能它就不能工作。
全局變量:在函數(shù)外部定義的變量稱為全局變量。全局變量可以被此文件(作用域)中的其他函數(shù)共享,其有效范圍(生存期)從變量的定義開始到文件的結尾。
如果外部變量與同一源文件中的局部變量同名,則外部變量在局部變量的作用域內(nèi)被“屏蔽”,即全局變量不起作用。
什么是問題域、作用域呢?
“問題域”是指問題的范圍、問題之間的內(nèi)在關系和邏輯可能性的空間。在許多編程語言中,作用域是非常重要的。一般來說,一段程序代碼中使用的名稱并不總是有效/可用的,而限制名稱可用性的代碼的范圍就是名稱的范圍。作用域的使用提高了程序邏輯的局部性,提高了程序的可靠性,減少了名稱沖突。對于一個對象(其他對象也一樣),在main函數(shù)中,該對象的作用域位于最近的一對花括號中。析構函數(shù)在花括號的末尾調(diào)用;全局對象的作用域是聲明之后的整個文件,析構函數(shù)在末尾調(diào)用。另外,臨時生成的對象在使用后會立即解構
模塊的作用域是指在模塊中確定的作用域,是指受此確定影響的所有模塊。如果模塊包含受決策影響的操作,則該模塊在決策的范圍內(nèi)。如果模塊的執(zhí)行取決于決策的結果,則該模塊及其直接或間接調(diào)用的模塊都在決策的范圍內(nèi)。模塊的控制域是指模塊本身及其直接或間接調(diào)用的模塊。如果模塊的作用域不在控制域內(nèi),會增加模塊間的數(shù)據(jù)傳輸量,導致模塊間的控制耦合。C語言程序由主函數(shù)和一些其它函數(shù)(或沒有其它函數(shù))組成。程序從主函數(shù)開始,直到主函數(shù)結束。函數(shù)的作用域可以理解為函數(shù)的有效區(qū)域:主函數(shù)可以調(diào)用其他函數(shù)。其他函數(shù)可以互相調(diào)用,但不能調(diào)用主函數(shù)。