C和C++运算符

✍ dations ◷ 2025-12-10 08:52:34 #Webarchive模板archiveit链接,C语言,C++

所有的C语言运算符都被C++语言支持。C语言不支持运算符重载。

在不重载时,运算符&&||,(逗号运算符),在第一个操作数求值之后有一个顺序点。

大部分C与C++运算符也可用于其它程序设计语言如C#、Java、Perl、PHP等,具有相同的优先级、结合性与语义。

以下是C++编程语言中的所有运算符的优先级和结合性列表。

在本表中,abc代表有效值(来自变量或返回值的逐字常量或数值)、对象名称,或适当的左值。

在C和C++中对运算符的约束,是语言的语法规范因素所指定的(在对应的标准中),而不是优先级列表。这造成了一些微妙的冲突。例如,在C中,条件表达式的语法是:

   邏輯-OR-表達式 ? 表達式 : 條件-表達式

在C++中则是:

   邏輯-or-表達式 ? 表達式 : 賦值-表達式

因此,这个表达式:

   e = a ? b : c = d

两个语言的语法分析结果并不相同。在C中,这个表达式被解析为:

   e = ((a ? b : c) = d)

这是一个错误的语义,因为条件-表达式的结果并不是一个左值。在C++中,则解析为:

   e = (a ? b : (c = d))

这是一个有效的表达式。

比特逻辑运算符的优先级一直受到批评 Archive-It的存档,存档日期2015-02-03。在观念里,&和|是类似于+和*的数值运算符。但是,表达式

   a & b == 7

意谓

   a & (b == 7)

   a + b == 7

意谓

   (a + b) == 7

这就需要经常使用圆括号,以免有意料之外的结果。

一元正号运算符可用于操作数表达式的类型提升。例如下例:

template <class T> void f(T const& a, T const& b){};int main() {	int a;	int b;	f(a, b); // won't work! different values for "T"!	f(+a, +b); // works! T is "int*" both  }

安全问题

下表指出了各个运算符可能导致的安全问题:

相关

  • 第一公民第一公民,译自于拉丁语的“Princeps”——该字源自于“Princeps Senatus,元老院首席议员”,中文通常译为第一公民。这原本是古罗马共和时期的元老院的荣誉职衔,后经屋大维所创建
  • 圣母升天节圣母升天节纪念于每年的8月15日,在厄弗所大公会议基于肯定耶稣是真天主又是真人,宣认玛利亚为天主之母的信理。此后圣母敬礼便在各地蓬勃发展起来。至教宗本笃十四世,宣布玛利
  • 性别二元论性别二元论,也称为英语:gender binary,法语:genre binaire,将生理性别(sex)和社会性别(gender)划分为只有男性和女性的两种二元性别,两性是相反且有区别的。在一般状况,大多数人是顺性
  • 三星重工三星重工(朝鲜语:삼성중공업)总部位于韩国首尔,是三星集团的一个子公司,是世界最大的造船企业之一,也是大韩民国三大造船厂之一。三星重工在韩国的造船厂是世界上最大的造船厂之一
  • 何景明何景明(1483年-1521年8月5日),字仲默,号白坡,又号大复山人。河南信阳人。明朝作家。明朝文学家前七子之一,官至陕西提学副使。何景明幼时聪慧,弘治十五年(1502年),20岁即中进士,授为中书
  • 巴黎伯爵亨利六世申博尔恩-布海姆伯爵夫人伊莎贝尔 巴黎伯爵亨利 林堡-施蒂鲁姆伯爵夫人海伦 弗朗索瓦奥尔良的亨利,巴黎伯爵(1908年7月5日-1999年6月19日),全名亨利·罗伯特·斐迪南·马里·路易
  • 恩里科·费米奖恩里科·费米奖(Enrico Fermi Award),是美国政府机构原子能委员会颁发的一项国际奖,于1954年设立,费米去世前成为首位获奖者,奖金为32万5千美元。恩里科·费米奖每年颁发一次,用来
  • ALL the SINGLES《ALL the SINGLES》是日本男子音乐组合橘子新乐园的第五张精选辑,2010年7月14日由gr8! records在日本发行。
  • 帕瓦特·奥特曼《帕瓦特·奥特曼》(英语:Ultraman: The Ultimate Hero / Ultraman Powered,日本语:ウルトラマンパワード,罗马字:Urutoraman Pawādo),是一部日美两国于1993年合作拍摄的特摄片,由日
  • 瓦西丽莎·科兹娜瓦西丽莎·科兹娜(俄语:Васили́са Ко́жина,1780年?─1840年?)是俄罗斯的女农民,在1812年俄法战争期间是俄国的民间英雄。瓦西丽莎·科兹娜的丈夫,戈尔什科夫(Gorshko