C++ 快速導覽 - 運算式

運算式 (expression) 由運算元 (operand) 與運算子 (operator) 所組成,每個運算式都會計算出一個值 (value) 。最簡單的運算式為常數運算式,也就是只有以常數為運算元的運算式,如

#include <iostream>

int main()
{
    if (1) {
        std::cout << "Hello, world!" << std::endl;
    }
    
    return 0;
}
 
/* 《程式語言教學誌》的範例程式
    http://pydoing.blogspot.com/
    檔名:constexpr.cpp
    功能:示範常數運算式
    作者:張凱慶
    時間:西元 2010 年 10 月 */


第 5 行
if (1) {


if 後面所接的小括弧需要一個運算式,此處只代入整數 1 ,亦即為常數運算式。


編譯後執行,如下



呼叫函數 (function) 也屬於運算式的一種,如以下程式呼叫屬於 C 語言的標準函數庫 (c standard library) math.h 的函數 abs()
#include <iostream>
#include <cmath>
 
int main()
{
    int a = -99;
    int b = abs(a);
    
    std::cout << "a 為 " << a << std::endl;
    std::cout << "a 的絕對值為 " << b << std::endl;
    return 0;
}
 
/* 《程式語言教學誌》的範例程式
    http://pydoing.blogspot.com/
    檔名:funexpr.cpp
    功能:呼叫函數的運算式
    作者:張凱慶
    時間:西元 2010 年 10 月 */


第 9 行
std::cout << "a 的絕對值為 " << abs(a) << std::endl;


函數 abs() 來自 math.h , C++ 中引入 C 語言的標準函數庫的功能,所採用的寫法為第 2 行
#include <cmath>


函數庫名稱之前加上小寫英文字母 c ,其後不需要加上 .h 的副檔名。


編譯後執行,如下



C++ 提供多樣、功能完整的運算子,由這些運算子與運算元結合成為運算式。依運算子結合後運算的優先次序,如下列表
運算子結合規則
1::左到右
2()左到右
[]
->
.
++
--
dynamic_cast
static_cast
reinterpret_cast
const_cast
typeid
3!右到左
not
~
compl
++
--
-
+
*
&
sizeof
new
new []
delete
delete []
(type)
4->*左到右
.*
5*左到右
/
%
6+左到右
-
7<<左到右
>>
8<左到右
<=
>
>=
9==左到右
eq
!=
not_eq
10&左到右
bitand
11^左到右
xor
12|左到右
bitor
13&&左到右
and
14||左到右
or
15?:右到左
16=右到左
+=
-=
*=
/=
%=
&=
and_eq
^=
xor_eq
|=
or_eq
<<=
>>=
17throw
18,左到右


中英文術語對照
運算式expression
運算元operand
運算子operator
value
函數function
C 語言的標準函數庫c standard library


您可以繼續參考
運算式
型態轉換


相關目錄
回 C++ 快速導覽
回 C++ 教材
回首頁


參考資料
C++ reference
cplusplus.com
Cprogramming.com C++ Tutorial

C++ Primer, Fourth Edition, Stanley B. Lippman...


本文於 2013 年 1 月更新

沒有留言: