未定義變數

未定義變數,顧名思義,未被定義的變數(Undefined variable)。在使用電腦程式語言編程時,由於訪問了未被定義或未被初始化的變數,導致編譯器報錯,錯誤提示常常是...未被定義”或...is not defined"或“undeclared “。

基本介紹

  • 中文名:未定義變數
  • 外文名:Undefined variable
  • 基本釋義:未被定義的變數
  • 歸屬學科:計算機程式語言
  • 來源:編程過程
  • 出現:錯誤提示
變數,定義,變數的動作,引用變數的標識符,作用域,存活期,未定義變數,錯誤提示,C/C++,Matlab,Python,

變數

定義

在計算機編程中,變數或標量是與相關聯的符號名稱(標識符)配對的存儲位置,其包含稱為值的一些已知或未知數量的信息。變數名稱是引用存儲值的通常方法;這種名稱和內容的分離允許獨立於其所代表的確切信息使用該名稱。計算機原始碼中的標識符可以在運行時綁定到一個值,並且變數的值因此可能在程式執行過程中發生變化。
編程中的變數可能不直接對應於數學變數的概念。計算變數的值不一定是數學中等式或公式的一部分。在計算中,可以在重複過程中使用變數 ,即在一個位置分配值,在其他位置使用,然後重新分配新值,並以相同的方式再次使用。計算機編程中的變數經常被給予長名稱以使其相對描述其使用,而數學中的變數通常具有簡潔的,一個或兩個字元的名稱來簡化轉錄和操縱。
可變存儲位置可以由幾個不同的標識符引用,稱為混疊的情況。使用其中一個標識符為變數分配值將更改可以通過其他標識符訪問的值。
編譯器必須用數據的實際位置替換變數的符號名稱。當變數的名稱、類型和位置通常保持固定時,存儲在該位置的數據可能在程式執行期間被更改。

變數的動作

在命令式程式語言中,變數的值通常可以被隨時訪問或更改。 然而,在純粹的功能和邏輯語言中,由於引用透明度的要求,變數在整個生命周期中都被綁定到表達式並保持一個單一的值。 在命令語言中,和常數表現出相同的行為,通常與正常變數形成對比。
根據程式語言的類型系統,變數只能存儲特定的數據類型(例如整數或字元串)。 或者,數據類型可以僅與當前值相關聯,允許單個變數存儲由程式語言支持的任何東西

引用變數的標識符

可以使用引用變數的標識符來訪問變數,以便讀取該值,或更改該值,或編輯變數的屬性,例如訪問許可權,鎖定,信號量等。
例如,變數可能被標識符“total_count”引用,變數可以包含數字1956.如果同一變數也被標識符“x”引用,並且如果使用該標識符“x”,則值 該變數更改為2009年,然後使用標識符“total_count”讀取值將產生2009年的結果,而不是1956年。
如果一個變數只被單個標識符引用,該標識符可以簡單地稱為變數的名稱。 否則,我們可以說出變數的名字之一。 例如,在前面的例子中,“total_count”是所討論的變數的名稱,“x”是同一變數的另一個名稱。

作用域

變數的作用域由聲明它的位置決定。如果在過程中聲明變數,則只有該過程中的代碼可以訪問或更改變數值,此時變數具有局部作用域並被稱為過程級變數。如果在過程之外聲明變數,則該變數可以被Script中所有過程所識別,稱為Script級變數,具有Script級作用域。

存活期

變數存在的時間稱為存活期。Script級變數的存活期從被聲明的一刻起,直到Script運行結束。對於過程級變數,其存活期僅是該過程運行的時間,該過程結束後,變數隨之消失。在執行過程時,局部變數是理想的臨時存儲空間。可以在不同過程中使用同名的局部變數,這是因為每個局部變數只被聲明它的過程識別。

未定義變數

未定義變數,顧名思義,未被定義的變數(Undefined variable)。在使用電腦程式語言編程時,由於使用了一個未被定義的變數,導致編譯器報錯。

錯誤提示

C/C++

若在程式中訪問一個未被定義的變數,如 a ,則會出現如下錯誤提示:
error::'a' undeclared

Matlab

若在程式中訪問一個未被初始化的變數,如 a ,則會出現如下錯誤提示:
未定義函式或變數 'a'。

Python

若在程式中訪問一個未被定義的變數,如 a ,則會出現如下錯誤提示:
NameError::name 'a' is not defined

相關詞條

熱門詞條

聯絡我們