C和C++运算符

✍ dations ◷ 2025-09-17 09:11:25 #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°08′32″N 94°39′43″E / 40.1421299464764°N 94.66188110411167°E / 40.1421299464764; 94.66188110411167敦煌市位于中国甘肃省西北部,是酒泉市代管的一个县级
  • 甲醇经济甲醇经济(英语:methanol economy)是一种提议中未来的经济形式,使用甲醇来代替现在广泛使用的化石燃料来用作能量存储,地面交通燃料,以及合成碳氢化合物的原料及其产品。它与提议中
  • 救赎救援论(Soteriology)是宗教理论中有关救援和拯救的理论思想。这种思想存在于多种宗教当中,但以基督宗教的救援论最为一般人所熟知。“救援论”这名词是从希腊语直译过来,本身
  • 与狼共舞《与狼共舞》(英语:Dances with Wolves)为于1990年上映的美国电影,描述在1860年代美国南北战争末期,北军中尉邓巴与印地安苏族的故事,电影的对白多使用苏族语言拉科塔语,配以英语字
  • 比尔·福尔克斯威廉·安东尼·福尔克斯(William Anthony Foulkes,1932年1月5日-2013年11月25日),是已故英格兰职业足球运动员和足球主教练,球员时期只效力于曼联一家俱乐部,司职中后卫,是球队长期
  • 刘阿昌与打帮你乐团木吉他、电吉他、月琴、刘阿昌与打帮你乐团(2011年-),是台湾的一个乐团,由从事客家音乐创作的客家音乐人刘荣昌,在新竹与卢欣民、朱荣豪、陈玟宪等四位团员共同成立。创作风格采中
  • 伊利诺伊州同性婚姻同性婚姻在伊利诺伊州自2014年6月1日开始合法化。2013年11月20日州长帕特·奎因签署了同性婚姻法案,在2014年6月1日后生效。此前,2011年1月31日奎因签署法案使得民事结合在伊
  • Luhn算法Luhn算法(Luhn algorithm),也称为“模10”(Mod 10)算法,是一种简单的校验和算法,一般用于验证身份识别码,例如发卡行识别码、国际移动设备辨识码(IMEI),美国国家提供商标识(英语:National
  • 山胡椒属山胡椒属(拉丁文:),又名钓樟属,是樟科底下的一属开花植物,包含80~100个物种,大多数分布在东亚。这属植物包括灌木和小乔木。拉丁学名是纪念17世纪的瑞典植物学家约翰·林德(Johan Li
  • 特蕾西·舍瓦利耶特蕾西·舍瓦利耶(英语:Tracy Chevalier,1962年10月-)是一名畅销历史小说家。现在与她丈夫及两名孩子在英国伦敦生活。她出生于美国华盛顿首府,在马里兰州的贝塞斯达完成了高中之