基本介紹
介紹,運算符的運算對象,運算符的結合方向,
介紹
例: --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++”,這是不允許的。