變數

在数学、物理学中，变数（）又称-{zh-cn:变数;zh-tw:變量}-，是表達式或公式中，没有固定的值而可以变动的数或量；該数或量可以是隨意的，也可能是未指定或未定的。表示变数的字母，统称为變元、元，即变元是一个用来表示的符号。在语义上，变-{}-数（变-{}-量）相对于常数（常-{}-量）。初等數學中，也以未知数、未知量代称变数。

在其他科学中，英语 variable 亦称变项、變因，是任何欲观测或欲操纵的概念、屬性、情況、事物、因素，其在質或量（性質或數量）上可變。

在數學领域中，一个變數可以代表“某個數據”，但也可用以表示：一个数、一个向量、一个矩阵、一个函数、一个函数的参数、一个集合或一个集合的元素等数学符号表达的内容。

变数常见的例子如：一個函數  有兩個變數（參數 和值 ），當參數「變動」時，值也會相對應地「變動」。

起源及概念之演進 
弗朗索瓦·韋達於16世紀末引入了使用字母表示已知及未知數字的想法，並將這些字母視同數字般運算，以在最後簡單代入數值求解。弗朗索瓦·韋達習慣會以子音字母表示已知值，以母音字母表示未知值 。

1637年，勒内·笛卡兒引入以表示公式中的未知數，以表示已知數的習慣，此一習慣至到今日依然常見。

1660年代起，艾薩克·牛頓及哥特佛萊德·萊布尼茲分別獨立發展出无穷小演算，主要研究一個「可變量」的無窮小變動如何導致另一個量（第一個變數（量）的函數值）相對應的變動。之後過了近一個世紀，李昂哈德·尤拉修正了無窮小微積分的用語，並引入的概念，是個函數，具有參數及值。直到19世紀末，「變數」這一詞幾乎都被用來指函數的參數及值。

19世紀下半葉，人們發覺無窮小微積分的基礎似乎不夠形式化，不足以處理像是處處不可微之連續函數這類自相矛盾的問題。為了解決此類問題，卡爾·魏爾斯特拉斯引入了新的定義，以取代之前對極限的直觀概念。對極限，舊的概念描述「當「變數」變動且趨近於時，會趨近於，其中的「趨近」並沒有明確的定義或上下文。魏爾斯特拉斯則將上述句子以下列公式取代：

其中的5個變數均不被視為是變動的。

此一靜態公式導致今日對變數只是表示數學物件（可以是未知的，或可被給定集合中的任何元素取代）之符號的概念。。

計算機科學上 

變數可以指在電腦記憶體裏存在值的被命名的存储空間。

变量通常是可被修改的，即可以用来表示可变的状态。这是许多语言（如Java）的基本概念之一。有的语言可能定义其它术语，如C语言的左值来精确地表示这里的（可能匿名的）存储空间的概念，而“变量”则在变量名的意义上被强调。

當某個已宣告變數開始使用，直譯器或編譯器通常會設定一個空間來儲存所給出的值。稍後該變數不再使用時，那些空間可以回收。

也有观点认为，变量应该和数学的原意一致，不需要允许它储存的值可变，不需要有能力表示可变状态。Haskell的类型变量仍然符合这个含义。

有些編程語言中的變數必須帶有型別。

命名 
每種編程語言都有規則指定甚麼才可作為變數的名字。

使用C和其相關語言，變數名稱在语法上称为标识符，必須是由英文字母、數字和底線組成，且必須由字母起頭。有時還不可以使用某些保留字命名。

使用某些語言，變數的名字同時告訴了這個變數帶有甚麼種類的值。例如FORTRAN的程式裏，變數的首個字母顯示了它是整數還是浮点数。變數名字首個字符是$的話，在BASIC的程式裏表示其值是字串。Perl透過字首如$,@,%和&來分辨哪是純量、陣列、雜湊或副程式。

每個編程組織都有非正式的命名規矩——單打獨鬥的程式員亦是如此。有人喜歡所有變數都用簡單的英文字母取名，認為能增加輸入程式碼的速度，但只要變數一多，就會容易混淆，甚至以後自己看回程式碼也不懂在寫甚麼。

迴圈控制變數这样的虚变量和数学上的习惯类似，通常以i, j, k命名。

统计学上 
变量是统计学研究中对象的特征。它可以是定性的也可以是定量的，一个定量变量要么是离散的，要么是连续的。社会科学中研究变量的关系，通常採用數學中對應的觀念，把一个变量称为自变量（独立变量），另一个变量称之为因变量（依赖变量）。

參考文獻

參見 
 自变量和因变量

 
代数
微积分
初等数学
句法 (逻辑学)
數理邏輯