C和C++运算符

✍ dations ◷ 2025-12-02 03:02:34 #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  }

安全问题

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

相关

  • 杰克逊县杰克逊县(Jackson County, Oregon)是美国俄勒冈州南部的一个县,南邻加利福尼亚州,成立于1852年1月12日。面积7,257平方公里。根据美国2000年人口普查,共有人口19,009人。县治麦德
  • 双名法二名法(英语:Binomial Nomenclature,Binominal Nomenclature 或 Binary Nomenclature),又称双名法,依照生物学上对生物种类的命名规则,所给定的学名之形式,自林奈《植物种志》(1753
  • 卡夫拉卡夫拉(Khafra),埃及第四王朝的法老(约公元前2558年-前2532年在位),名字的意思可能是“拉的皇冠”,为法老胡夫之子,希腊著名历史学家希罗多德称他为“齐夫伦”(Chephren),并把他描写成胡
  • 基本工资中华民国的基本工资制度依据《劳动基准法》及《基本工资审议办法》,于每年第三季由劳动部邀请各界人士组成“基本工资审议委员会”进行审议,如会中决议调整,则将结果交由行政院
  • 坎塔布连方言坎塔布连方言指的是西班牙坎塔布连地区的当地方言,与标准的西班牙语有很大差别。根据不同的标准,坎塔布连方言可能还包括坎塔布连各地区、比斯开省边境、布尔戈斯和帕伦西亚一
  • 加藤正人加藤正人(1963年3月28日-)是日本电子游戏美工师、编剧与总监。他在生涯早年使用“Runmaru”和“Runmal”的假名。之后他加入史克威尔,最知名的工作是为《时空之轮》、《Radical
  • 李佳翰李佳翰(英语:Lee Chia-Han,1996年11月5日-),台湾男子羽毛球运动员。2014年5月,李佳翰作为能仁家商代表队成员,出战国际学校体育总会(ISF)在台湾举办的世界中学生羽毛球锦标赛国家男子
  • 付岩洞复仇者们《付岩洞复仇者们》(韩语:부암동 복수자들,英语:Avengers Social Club),为韩国tvN于2017年10月11日起播出的水木连续剧,由《前女友俱乐部》权锡璋导演执导与《春日华尔滋》黄多恩、
  • 保罗·诺伊曼保罗·诺伊曼(德语:Paul Neumann,1875年6月13日-1932年2月9日),出生于维也纳,奥地利男子游泳运动员和医生。他参加了1896年夏季奥运会游泳比赛,并获得了男子500米自由泳金牌,是奥地利
  • 邻里的人们《邻里的人们》(韩语:동네사람들)是一部2018年上映的韩国惊悚悬疑电影,由马东石、金赛纶主演。故事讲述了某女高中生突然失踪,调任至该校的体育老师与消失的女高中生的好友,在搜寻