C和C++運算子
发布时间:2026-09-10 | 浏览:1
所有的 C语言 运算符 都被 C++语言 支持。C语言不支持 运算符重载 。
在不重载时,运算符 && 、 || 、 , ( 逗号运算符 ),在第一个操作数求值之后有一个 顺序点 。
大部分C与C++运算符也可用于其它程序设计语言如 C# 、 Java 、 Perl 、 PHP 等,具有相同的优先级、结合性与语义。
以下是C++程式語言中的所有運算子的 優先級 和 結合性 列表。
在本表中, a 、 b 和 c 代表有效值(來自變數或返回值的逐字常數或數值)、物件名稱,或適當的左值。
在C和C++中對運算子的約束,是語言的語法規範因素所指定的(在對應的標準中),而不是優先級列表。這造成了一些微妙的衝突。例如,在C中,條件表達式的語法是:
兩個語言的語法分析結果並不相同。在C中,這個表達式被解析為:
這是一個錯誤的語義,因為條件-表達式的結果並不是一個左值。在C++中,則解析為:
位元邏輯運算子的優先級一直受到批評 [ 1 ] 。在觀念裡,&和|是類似於+和*的數值運算子。但是,表達式
這就需要經常使用圓括號,以免有意料之外的結果。
一元正号运算符可用于操作数表达式的类型提升。例如下例:
下表指出了各个运算符可能导致的安全问题:
^ The Development of the C Language . [ 2007-03-01 ] . (原始内容 存档 于2015-02-03).
Experimental results ( 页面存档备份 ,存于 互联网档案馆 ) showing that developers have poor knowledge of binary operator precedence.
Basic types & Operators ( 页面存档备份 ,存于 互联网档案馆 )
Borland Turbo C++
Watcom C/C++编译器
CodeLite ( 英语 : CodeLite )
Microsoft Visual Studio
编程语言的对照 ( 英语 : Comparison of programming languages )