c語言怎麼會有這麼多的作用域?

首先作用域是什麼?

       顧名思義作用域就是一個東西能起作用的範圍,當然這個解釋未免有些太過於籠統,在c語言中作用域就是指聲明一個變量,而這個變量能被訪問的這個區域就是它的作用域。這個變量的被訪問的區域由着個變量的標識符的作用域所決定。標識符的作用域就是程序中該標識符可以被使用的區域。

c語言的編譯器可以大體的分出四個作用域 分別是:文件作用域、函數作用域、代碼塊作用域、原型作用域。

代碼塊作用域:

     位於一對大括號中的語句就是一個代碼塊,在一對大括號內可以使用的變量都具有代碼作用域的特徵。局部變量就是一個具有代碼塊作用域的變量,它只能在聲明它的大括號內被使用,只能被用於自己的代碼塊,別的代碼塊都不能使用它。

文件作用域:

      聲明在所用代碼塊之外的變量都具有這個文件作用域的特徵,從聲明處開始到源文件的結束,它都是可以被訪問的。典型的代表就是全局變量,它一般都聲明於main函數之前,存在於整個源文件執行過程直到源文件結束,但是別的源文件不能訪問。

原型作用域:

      原型作用域只適用於在函數原型中聲明的參數名,在函數原型中參數名可以省略,但是如果出現參數名,它可以隨意取名,而原型作用域就是防止這些參數名與程序中其他的部分的名字衝突。

函數作用域:

      函數作用域它只適用於語句標籤,而語句標籤適用於goto語句,它的規則是:一個函數中所用的語句標籤必須唯一。(不常用)

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章