C和C++运算符

✍ dations ◷ 2024-12-23 11:06:08 #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  }

安全问题

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

相关

  • 大便失禁大便失禁(英语:Fecal incontinence),指无法控制排便,造成直肠中的粪便、未完全形成的粪便和液体不受控制地排出。大便失禁有时伴有腹泻或便秘。可能的原因有几个,如妊娠、肛门和直
  • 宫外孕异位妊娠(Ectopic pregnancy),又称为子宫外孕(eccyesis),是指胚胎在子宫以外部位着床的妊娠并发症。典型症状和体征包含腹痛及阴道出血(英语:vaginal bleeding),上述二种症状都有的女
  • 吕宋岛37,870人217,000人伤亡(1944年-45年)吕宋岛战役是第二次世界大战太平洋战争中美国及菲律宾联军的登陆战役,以消灭岛上的日本帝国军队,战役结果是美国和菲律宾联军获胜,盟军在3
  • 缅因猫缅因猫是北美洲自然产生的最早的长毛猫品种,原产于美国东岸缅因州附近。缅因猫是美国猫种当中数量最多的种群,除了其聪颖与活泼广为人知以外,其独一无二巨大的体型也令人过目难
  • 蔡美儿蔡美儿(Amy L. Chua,1962年10月26日-),美国华裔律师、作家,耶鲁大学法学院“约翰.达夫讲座”(John M. Duff Jr.)法学教授,国际畅销书《虎妈的战歌》作者,2011年《时代》杂志百大影响力
  • 1,4-萘醌1,4-萘醌,或简称萘醌,是一种有机化合物。它是黄色的三斜晶体,具有与对苯醌相似的气味。它在冷水中难溶,在石油醚中微溶,在大多数有机溶剂中易溶。在碱性条件下它呈红棕色。由于它
  • 陈孟祥陈孟祥,名昌,以字行,江西泰和人。明朝政治人物、进士。永乐四年(1406年),陈孟祥中式二甲第三十四名进士。选庶吉士,预修《永乐大典》,卒于任内。
  • 佐治亚州州旗乔治亚州州旗(英语:Flag of Georgia),是美国乔治亚州的州旗,现在的州旗的启用于2003年5月8日,旗帜为红-白-红相间的水平条纹,旗角为蓝底,上有乔治亚州州徽,下有美国的格言“In God We T
  • 美国合并建制领地美国合并建制领地(英语:Organized incorporated territories of the United States),是指已经被美国合并为本土的一部分,并由美国国会以通过《组织建制法案(英语:Organic act)》承认
  • 混沌元素混沌元素(Chaosium)为一家美国角色扮演游戏发行商,其第一部作品为《符石之谜》,最有名的游戏是《克苏鲁的呼唤》系列。除了规则书,混沌元素也出版霍华·菲力普·洛夫克莱夫特的恐