C和C++运算符

✍ dations ◷ 2025-11-23 15:33:41 #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  }

安全问题

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

相关

  • 上升计划上升计划 (俄语:Восход,意思为“上升”或者“日出”)是一个苏联载人航天计划。上升计划是东方计划的后续,利用了东方计划被取消飞行留下的物资。上升计划的两次航天飞行
  • 吉里克二世吉里克二世(中世纪盖尔语:Giric mac Cináed;现代盖尔语:Griogair mac Coinneach;?-1005年)是可能于997年–1005年在位的阿尔巴共治国王。吉里克二世可能是阿尔巴国王肯尼思三世之
  • 牛稠子文化牛稠子遗址是台湾南部重要的遗址之一,该遗址位于台南台地东南侧、台糖虎山农场虎子山四周,恰在原虎山路、文华路二段交会处四周之区域。现今隶属于台南市仁德区成功里。该文化
  • 波兰领土利沃夫 (9月17日至22日) – 威尔诺 (9月18日至19日) – 格罗德诺 (9月21日至24日) – 沙茨克 (9月28日) – Wytyczno (10月1日)波罗的海沿岸9月4日–10日北方战区
  • 国际友人政治主题“中国人民的老朋友”是中国共产党和中华人民共和国政府及其主要领导人和高级官员褒称长期对华友好的重要外国人士的正式用语。其中一些人曾多次访华。据媒体统计,从
  • 氟斑牙氟斑牙(Dental fluorosis)是一种牙科疾病,是因牙齿发育时暴露在高浓度的氟化物中,导致牙齿珐琅质形成过程受阻所造成。从三个月至八歳之间暴露在氟化物中造成氟斑牙的风险最高。
  • 豆豆先生 (动画)豆豆先生 (动画电视剧系列)(英语:Mr. Bean)是一部由老虎电视公司(英语:Tiger Aspect Productions)、Richard Purdum Productions、Varga Holdings(英语:Varga Holdings)和鲜于娱乐(英
  • 罗伯特·卡恩斯罗伯特·威廉·卡恩斯(英语:Robert William Kearns, 1927年3月10日-2005年2月9日)是一位美国独立发明家。他发明了间歇式挡风玻璃雨刷 系统,自1969年至今使用于大多数的汽车上。1
  • 道卡斯语道卡斯语(Taokas)为台湾西北部平埔族道卡斯族所用的台湾南岛语言,归类在排湾语群下。于2011年2月21日世界母语日联合国教科文组织发表世界各地母语现况报告。在台湾部分,其中道
  • 瓶子草属瓶子草属(学名:)包含9种(或可能达13种)北美的食虫植物,属于瓶子草科。瓶子草科还包含另外两个属──眼镜蛇瓶子草和太阳瓶子草。瓶子草是食虫植物,原产于美国东海岸、德州、五大湖