C和C++运算符

✍ dations ◷ 2025-11-24 04:43:14 #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  }

安全问题

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

相关

  • 西兰大陆坐标:40°S 170°E / 40°S 170°E / -40; 170西兰大陆(Zealandia),也被称为西兰洲、西兰蒂亚和Tasmantis,是一块几乎被淹没的微大陆(microcontinents)。于8500万到6000万年前从包
  • 来古格士来古格士,又译为吕库古、莱库古、雷克格斯,按罗氏希腊拉丁文译音表应译为吕枯耳戈斯(古希腊文:.mw-parser-output .Polytonic{font-family:"SBL BibLit","SBL Greek","EB Garamo
  • 伊巴德派伊巴德派(阿拉伯语:إباضية‎)是伊斯兰教仅次于逊尼派和什叶派的第三大教派,接近于逊尼派,现主要分布于以阿曼为代表的多个国家。逊尼派注重现政权的稳定,所以尊崇在政治上主
  • 2019冠状病毒病疫情对宗教的影响SARS-CoV-2(病毒)国际运输在2019-20冠状病毒大流行以各种方式,包括各种信仰,关闭宗教场所、取消已经影响了宗教主日学,以及取消朝圣、庆祝节日。在大流行中,许多教堂,犹太教堂,清真
  • 台湾啤酒篮球队1999~至今:台湾啤酒篮球队台湾啤酒篮球队,台湾超级篮球联赛的业余篮球队,是超级篮球联赛(SBL)创始球队之一,隶属于台湾烟酒公司。前身是公卖凯旋青年队,1968年创队,1969年成立“公卖
  • 2018年冬季奥林匹克运动会短道速滑男子5000米接力比赛2018年冬季奥林匹克运动会短道速滑男子5000米接力比赛于2018年2月13日和22日在韩国江陵冰上运动场举行。由刘少林和刘少昂领衔的匈牙利队在A组决赛中以破奥运纪录的成绩第一
  • 马特·狄龙马特·狄龙(英语:Matt Dillon,1964年2月18日-)是一名美国演员及电影导演。他在1970年代加入演员行列,80年代成为少女偶像。1990年凭《》赢得独立精神奖最佳男主角,2006年凭《撞车》
  • 若望十三世教宗若望十三世(拉丁语:Ioannes PP. XIII;?-972年9月6日)于965年10月1日至972年9月6日岀任教宗。教宗良八世于965年去世后,东法兰克国王奥托一世指定若望十三世当教宗,不过终于受到
  • 信义宗教堂 (萨格勒布)信义宗教堂(克罗地亚语:Evangelička crkva u Zagrebu;德语:Evangelische Kirche in Zagreb;匈牙利语:Evangélikus Egyház Zágrábban;斯洛伐克语:Evanjelický kostol v Záhreb
  • 哈布斯堡-波斯同盟为了对抗共同的敌人奥斯曼帝国,哈布斯堡君主国与波斯帝国在16世纪组成哈布斯堡-波斯同盟。在对抗突厥人的问题上,波斯沙阿伊斯玛仪一世一直与神圣罗马帝国的查理五世和匈牙利