C和C++运算符

✍ dations ◷ 2025-07-19 06:37:40 #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  }

安全问题

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

相关

  • 性爱恐惧症性爱恐惧症(英语:Erotophobia),也称恐性症,是一个在1970年代末、1980年代初期由研究人员所定义的术语,描述性行为相关的态度与信仰连续尺度上的一个极端,另一端是性爱倾向(Erotophil
  • 蔷薇蔷薇(学名:Rosa multiflora),又称野蔷薇,是一种蔓藤爬篱笆的小花,耐寒,有野生的,可以药用。英语Multiflora Rose、Baby Rose、Rambler Rose。英国历史上的红白蔷薇(玫瑰)战争(Wars of t
  • 抽象形态抽象化(英语:Abstraction)是指以缩减一个概念或是一个现象的资讯含量来将其广义化(Generalization)的过程,主要是为了只保存和一特定目的有关的资讯。例如,将一个皮制的足球抽象化
  • 张一山张一山(1992年5月5日-),中国大陆著名童星和演员,小时曾学过武术,本科毕业于北京电影学院2010级表演系。因在情景喜剧系列《家有儿女》中的出色表现,而受到观众的喜爱。与杨紫、鲍天
  • 爱尔兰教会爱尔兰教会,或称爱尔兰圣公会,是普世圣公宗团契的一员,普世圣公宗两个母会之一(另一个是英格兰教会)。在普世圣公宗各成员教会中列位第二,在英格兰教会之后。它有12个教区组成。目
  • 仁祖反正仁祖反正(韩语:인조반정)是发生于朝鲜王朝光海君执政时期的癸亥年(西历1623年)三月十二的一场宫廷政变。这场政变由西人党主导,最终将光海君废黜,将绫阳君拥上王位,是为朝鲜仁祖。16
  • 2019冠状病毒病疫情对新闻界的影响SARS-CoV-2(病毒)国际运输2019冠状病毒疫情严重影响了新闻行业以及记者的工作。广告收益大幅减少,许多地方报纸因此承受了严重的经济损失。记者失业、出版物遭受停刊,一些订阅制
  • 张添根张添根(1914年-1996年)生于日治台湾台中厅葫芦墩支厅栜东下堡(今台中市大雅区),为鸿禧企业集团、鸿禧美术馆、国产汽车股份有限公司创办人。1996年逝世于台北市,享寿82岁。1914年张
  • 溴化铅溴化铅是一种无机化合物,化学式为PbBr2。它是白色粉末,可以在传统的含铅汽油的燃烧中产生。溴化铅可以由可溶性铅盐和溴化物反应得到,这种制备方法利用了溴化铅在水中溶解度小
  • 北京奥林匹克转播有限公司北京奥林匹克转播有限公司(Beijing Olympic Broadcasting,简称BOB)是由北京奥组委和国际奥委会奥林匹克广播服务公司共同出资组建,为2008年夏季奥林匹克运动会和2008年夏季残奥