--

--

“--”是計算機編程高級語言里的自減運算符。與此相對應的是自增運算符“++”。自減運算只能作用於變數,而不能作用於常量或表達式

基本介紹

  • 中文名:--
  • 釋義:自減運算符
  • 對應:"++"
  • 所屬分類計算機編程高級語言
基本介紹,運算對象,結合方向,

基本介紹

例:--i,i--
--i是返回 i 的值之前先使 i 減一;
i--是返回 i 的值之後再減一。
#include<iostream>
using namespace std;
int main()
{
    int i,j;
    i = 1;
    j = 2;
    j = i--;
    cout << "j=" << j << " " << "i=" << i << endl;
    j = 2;
    i = 1;
    j = --i;
    cout << "j=" << j << " " << "i=" << i << endl;
    return 0;
}
結果是:
j=1 i=0
j=0 i=0

運算對象

因為自減運算符具有對運算量重新賦值的功能,而常量、表達式存儲單元可言,當然不能做自減運算。只要是標準類型的變數,不管是整型、實型,還是字元型、枚舉型都可以作為這兩個運算符的運算對象。如以下四個表達式都是合法的:i+++j++、++i+(++j)、++a+b++、++array〔--j〕;而++6、(i+j)++、‘A’++、++i+++j、(&p)++這五個表達式卻是不合法的。為什麼i+++j++合法,而++i+++j卻不合法C的編譯器對程式編譯時,從左到右儘可能多地將字元組合成一個運算符或標識符,因此i+++j++等效於(i++)+(j++),兩個“++”作用的對象都是變數,這是合法的;而++i+++j等效於++(i++)+j,第1個“++”作用的對象是表達式“i++”,這是不允許的。

結合方向

表達式k=-i++等效於k=(-i)++還是k=-(i++)。因為負號運算符和自增運算符優先權相同,哪一個正確就得看結合方向。自增、自減運算符及負號運算符的結合方向是從右向左。因此,上式等效於k=-(i++);若i=5,則表達式k=-i++運算之後k的值為-5,i的值為6。此賦值表達式的值即為所賦的值-5。不要因為k=-i++等效於k=-(i++)就先做“++”運算!這裡採用的是“先用後變”,即先拿出i的值做負號“-”運算,把這個值賦給變數k之後變數i才自增。

相關詞條

熱門詞條

聯絡我們