C和C++运算符

✍ dations ◷ 2025-11-30 05:02:11 #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  }

安全问题

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

相关

  • MMDMA3—甲氧基—4,5—亚甲基二氧基甲基苯丙胺(MMDMA)是安非他命类药物,一种致幻药物。在法国被视为可滥用药品,但并未有正式动物试验及相关研究。人体用量也因此目前处于未知状态,效果
  • 风冷风冷,又称气冷,是冷却方式的一种,即用空气作为媒介冷却需要冷却的物体。通常是加大需要冷却的物体的表面积,或者是加快单位时间内空气流过物体的速率,抑或是两种方法共用。前者可
  • 北爱尔兰– 欧洲(绿色及深灰色)– 英国(绿色)北爱尔兰(英语:Northern Ireland;爱尔兰语:Tuaisceart Éireann;低地苏格兰语:Norlin Airlann)是英国的政治实体之一,位于爱尔兰岛东北部,面积14,13
  • 蓝起司蓝乳酪(Blue cheese)又称蓝纹干酪、蓝芝士、蓝起司,是干酪的一种,特点是以青霉菌发酵而成,使其表面有一些蓝色的斑纹。蓝干酪可以用牛奶或羊奶制成。较著名的蓝干酪种类包括法
  • 体育 (课程)体育(英语:Physical Education,缩写P.E.)是一项在小学、中学和大学中开展的教学活动,旨在促进参与者在身体活动的过程中获得身心全面发展。在不同国家学校体育教学的任务及目标存
  • 鲁国鲁国,是周朝的一个姬姓诸侯国,为周成王的四叔周公旦及其子伯禽的封国。鲁国先后传二十五世,三十六位君主,历时八百余年。首都在曲阜,疆域在泰山以南,略有今山东省西南部,国力鼎盛时
  • Globe (专辑)《globe》是日本乐团globe在1996年所发行的出道专辑。全作曲、编曲: 小室哲哉
  • 奇丹巴拉姆·帕德马纳班·拉马努詹奇丹巴拉姆·帕德马纳班·拉马努詹(Chidambaram Padmanabhan Ramanujam)(1938年1月9日-1974年10月27日),印度数学家。他的化学非常好,家中自设了化学实验室,不过他在大学还是选了
  • 纪尧姆·布律纳纪尧姆·马里·安纳·布律纳(Guillaume Marie Anne Brune,1763年3月13日-1815年8月2日)法国军人和政治人物,法国元帅。布律纳是一位律师之子,生于法国科雷兹省布里夫拉盖亚尔德,法
  • 国际工会联合会 (1919年)国际工会联合会,也称作阿姆斯特丹国际,是1919年至1945年得到第二国际、社会主义工人国际支持的欧洲工会组织。1919年7月26日—8月2日于阿姆斯特丹,英、法、德、美、比、丹、荷