C++中指令系統的每一條指令都有一個C++操作符,它表示該指令應進行什麼性質的操作,不同的指令用操作符這個字段的不同編碼來表示,每一種編碼代表一種指令,下文進行學習研究。
操作符(operator)用於操作數據。操作符進行計算、檢查等式、進行賦值、操作變量和進行其它更奇怪的工作。C++中有許多操作符,這裡不想列出全部,只列出最常用的操作符,如下表所示。表1.2常用C++操作符操作符說明舉例:
- 算術運算符
- + 加 x=y+z;
- - 減 x=y-z;
- * 乘 x=y*z;
- / 除 x=y/z;
- 賦值運算符
- = 賦值 x=10;
- += 賦值與和 x+=10;(等於xx=x+10;)
- -= 賦值與減 x-=10;
- *= 賦值與乘 x*=10;
- \= 賦值與除 x\=10;
- &= 賦值位與 x&=0x02;
- |= 賦值位或 x|=0x02;
- 邏輯操作符
- && 邏輯與 if(x && 0xFF) {...}
- || 邏輯或 if(x || 0xFF) {...}
- 等式操作符
- == 等於 if(x == 10) {...}
- != 不等於 if(x != 10) {...}
- < 小於 if(x < 10) {...}
- > 大於 if(x > 10) {...}
- <= 小於或等於 if(x <= 10) {...}
- >= 大於或等於 if(x >= 10) {...}
- 一元操作符
- * 間接操作符 int x=*y;
- & 地址操作符 int* x=&y;
- ~ 位非 x &=~0x02;
- ! 邏輯非 if(!valid) {...}
- ++ 遞增操作符 x++等於xx=x+1;)
- -- 遞減操作符 x--;
- 類和結構操作符
- :: 范圍解析 MyClass :: SomeFunction();
- -> 間接成員 MyClass-> SomeFunction();
- · 直接成員 MyClass . SomeFunction();
可以看出,這個清單長了些,沒法一下子記住。使用C++操作符時,你會慢慢熟悉這些操作符的。必須指出,遞增操作符既可用作前遞增(++x),也可用作後遞增(x++)。前遞增操作符告訴編譯器先遞增再使用變量,而後遞增操作符則讓編譯器先使用變量值再遞增。例如下列代碼:
- int x = 10;
- cout << "x = " << x++ << end1;
- cout << "x = " << x << end1;
- cout << "x = " x << end1;
- cout << "x = " << ++x << end1;
遞減操作符也是這樣,這裡不想將這些內容講得太深,但讀者可以耐心閱讀下去,正如彭茲對奧古斯特所說,“奧古,耐心點,羅馬不是一天建成的”。說明 在C++中操作符可以過載(overload)。
編程人員可以通過過載標准操作符讓它在特定類中進行特定運行。例如,可以在一個類中過載遞增操作符,讓它將變量遞增10而不是遞增1。操作符過載是個高級C++技術,本書不准備詳細介紹。
你也許會發現,有些操作符使用了相同的符號。C++操作符的意義隨情境的不同而不同。例如,星號(*)可以作為乘號、聲明指針或取消指針引用。這初看起來有點亂,事實上,C++編程老手有時也覺得有點亂。多實踐,你會慢慢適應的。本書有許多例子介紹這些操作符。讀者不必死記每個操作符的作用,而可以在學習中通過程序和碼段去理解其作用。