<p>在多數指令式編程語言中，<b>增值和減值操作符</b>指的是一類單目操作符，這些操作符相應地增加或減少其操作數的值。以C語言為例，「++」「--」操作符分別為增值操作符和減值操作符。
</p>


<h2><span id=".E5.AF.B9.E6.93.8D.E4.BD.9C.E6.95.B0.E7.9A.84.E9.99.90.E5.88.B6.28C.E8.AF.AD.E8.A8.80.29"></span><span id="对操作数的限制(C语言)">對操作數的限制(C語言)</span></h2>
<p>增值和減值操作符的操作數可以為整型、字符或者指針等，準確地說，這些操作符只要求其操作數必須為一個左值，也就是要求操作數必須為一個可以用在賦值符號「=」左邊的表達式。
</p>
<h2><span id=".E7.94.A8.E6.B3.95.28C.E8.AF.AD.E8.A8.80.29"></span><span id="用法(C语言)">用法(C語言)</span></h2>
<ul><li>前綴形式的++和--操作符。前綴形式的++和--操作符出現在操作數的前面，應用了這種形式後，操作數本身會相應的增加或減少。同時，表達式的值為操作數增加或減少後的值。用法如下所示：</li></ul>
  
<ul><li>後綴形式的++和--操作符。後綴形式的++和--操作符出現在操作數的後面，應用了這種形式後，操作數本身會相應的增加或減少。同時，表達式的值為操作數增加或減少前的值。用法如下所示：</li></ul>
  
<h2><span id=".E5.8E.9F.E7.90.86.28C.E8.AF.AD.E8.A8.80.29"></span><span id="原理(C语言)">原理(C語言)</span></h2>
<p>對一個操作數應用增值或減值操作符，抽象來說將會創建一份操作數的拷貝，而創建拷貝的時間則根據操作符是前綴形式還是後綴形式來決定。所以使用這種操作符的表達式，實際用到的正是這份拷貝而不是操作數本身。所以編譯器並不允許如i++ = 2;這樣的語句出現。
</p>
<h2><span id=".E4.B8.80.E4.BA.9B.E5.AE.9E.E9.99.85.E5.BA.94.E7.94.A8.28C.E8.AF.AD.E8.A8.80.29"></span><span id="一些实际应用(C语言)">一些實際應用(C語言)</span></h2>
<ul><li>在計數功能上，使用增值和減值操作符可以讓表達式比普通的賦值語句看起來更加簡潔。</li></ul>
  
<ul><li>增值和減值操作符可以用在指針的移動上以提高程序效率。</li></ul>
  
<h2><span id=".E4.BD.9C.E4.B8.BAC.2B.2B.E8.BF.90.E7.AE.97.E7.AC.A6"></span><span id="作为C++运算符">作為C++運算符</span></h2>
<p>C++語言支持運算符重載。因此需要區分重載的是前增/減運算符還是後增/減運算符。
</p><p>重載前置的++、-- 運算符時，函數無形參：
</p>
 
<p>重載後置的++、--運算符時，函數中需要一個int形參（即啞元，an additional dummy int argument）：
</p>
 
<h2><span id=".E5.8F.82.E8.80.83.E4.B9.A6.E7.9B.AE"></span><span id="参考书目">參考書目</span></h2>
<ul><li><cite class="citation book">[美]Brian W.Kernighan,Dennis M.Ritchie. C程序设计语言（第2版·新版）. 機械工業出版社 <span title="連接到中文網頁">（中文）</span>.</cite><span title="ctx_ver=Z39.88-2004&amp;rfr_id=info%3Asid%2Fzh.wikipedia.org%3A%E5%A2%9E%E5%80%BC%E5%92%8C%E5%87%8F%E5%80%BC%E6%93%8D%E4%BD%9C%E7%AC%A6&amp;rft.au=%5B%E7%BE%8E%5DBrian+W.Kernighan%2CDennis+M.Ritchie&amp;rft.btitle=C%E7%A8%8B%E5%BA%8F%E8%AE%BE%E8%AE%A1%E8%AF%AD%E8%A8%80%EF%BC%88%E7%AC%AC2%E7%89%88%C2%B7%E6%96%B0%E7%89%88%EF%BC%89&amp;rft.genre=book&amp;rft.place=%E6%9C%BA%E6%A2%B0%E5%B7%A5%E4%B8%9A%E5%87%BA%E7%89%88%E7%A4%BE&amp;rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Abook"><span> </span></span></li></ul>
在多數指令式編程語言中，**增值和減值操作符**指的是一類單目操作符，這些操作符相應地增加或減少其操作數的值。以 C 語言為例，「++」「--」操作符分別為增值操作符和減值操作符。

## 對操作數的限制 (C 語言)

增值和減值操作符的操作數可以為整型、字符或者指針等，準確地說，這些操作符只要求其操作數必須為一個左值，也就是要求操作數必須為一個可以用在賦值符號「=」左邊的表達式。

## 用法 (C 語言)

* 前綴形式的 ++ 和 -- 操作符。前綴形式的 ++ 和 -- 操作符出現在操作數的前面，應用了這種形式後，操作數本身會相應的增加或減少。同時，表達式的值為操作數增加或減少後的值。用法如下所示：

* 後綴形式的 ++ 和 -- 操作符。後綴形式的 ++ 和 -- 操作符出現在操作數的後面，應用了這種形式後，操作數本身會相應的增加或減少。同時，表達式的值為操作數增加或減少前的值。用法如下所示：

## 原理 (C 語言)

對一個操作數應用增值或減值操作符，抽象來說將會創建一份操作數的拷貝，而創建拷貝的時間則根據操作符是前綴形式還是後綴形式來決定。所以使用這種操作符的表達式，實際用到的正是這份拷貝而不是操作數本身。所以編譯器並不允許如 i++ = 2; 這樣的語句出現。

## 一些實際應用 (C 語言)

* 在計數功能上，使用增值和減值操作符可以讓表達式比普通的賦值語句看起來更加簡潔。

* 增值和減值操作符可以用在指針的移動上以提高程序效率。

## 作為 C++ 運算符

C++ 語言支持運算符重載。因此需要區分重載的是前增 / 減運算符還是後增 / 減運算符。

重載前置的 ++、-- 運算符時，函數無形參：

重載後置的 ++、-- 運算符時，函數中需要一個 int 形參（即啞元，an additional dummy int argument）：

## 參考書目

* [美] Brian W.Kernighan,Dennis M.Ritchie. C 程序设计语言（第 2 版・新版）. 機械工業出版社 （中文）.
++