Visual Studio 2022环境中C语言编程运算符的优先级和结合性

爱编程的鼠鼠 2024-02-11 10:56:41

大家好,我是荔园微风,作为一名在IT界整整25年的老兵,经常有初学者搞不清Visual Studio 2022环境中C语言编程运算符的优先级和结合性,鉴于现在很多程序员不喜欢用括号而喜欢展现自己对优先级的深刻理解,导致很多初学者在看前人的代码时的那种郁闷不堪。所以我只好对初学者再次给予一些经验之谈。

https://img-blog.csdnimg.cn/50a06f33dcdd418eb2b50f479669578f.png?x-oss-process=image/watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBA6I2U5Zut5b6u6aOO,size_13,color_FFFFFF,t_70,g_se,x_16

先请把下面的这种C语言编程运算符的优先级和结合性好好先看一下。

下表为完整的C语言编程运算符的优先级和结合性表

优先级
运算符
名称或含义
使用形式
结合方向
说明
1
[]
数组下标
数组名[常量表达式]
自左到右
()
圆括号
(表达式)/函数名(形参表)
.
成员选择(对象)
对象.成员名
->
成员选择(指针)
对象指针->成员名
++
后置自增运算符
+变量名
单目运算符

后置自减运算符
–变量名
单目运算符
2

负号运算符
-表达式
自右到左
单目运算符
(类型)
强制类型转换
(数据类型)表达式
++
前置自增运算符
变量名+
单目运算符

前置自减运算符
变量名–
单目运算符

  • 取值运算符
  • 指针变量
    单目运算符
    &
    取地址运算符
    &变量名
    单目运算符
    !
    逻辑非运算符
    !表达式
    单目运算符
    ~
    按位取反运算符
    ~表达式
    单目运算符
    sizeof
    长度运算符
    sizeof(表达式)
    3
    /

    表达式/表达式
    自左到右
    双目运算符

  • 表达式*表达式
    双目运算符
    %
    余数(取模)
    整型表达式/整型表达式
    双目运算符
    4

  • 表达式+表达式
    自左到右
    双目运算符


    表达式-表达式
    双目运算符
    5
    <<
    左移
    变量<<表达式
    自左到右
    双目运算符

    右移
    变量>>表达式
    双目运算符
    6

    大于
    表达式>表达式
    自左到右

    双目运算符

    大于等于
    表达式>=表达式
    双目运算符
    <
    小于
    表达式<表达式
    双目运算符
    <=
    小于等于
    表达式<=表达式
    双目运算符

    7

    等于
    表达式==表达式
    自左到右
    双目运算符
    !=
    不等于
    表达式!= 表达式
    双目运算符
    8
    &
    按位与
    表达式&表达式
    自左到右
    双目运算符
    9
    ^
    按位异或
    表达式^表达式
    自左到右
    双目运算符
    10
    |
    按位或
    表达式|表达式
    自左到右
    双目运算符
    11
    &&
    逻辑与
    表达式&&表达式
    自左到右
    双目运算符
    12
    ||
    逻辑或
    表达式||表达式
    自左到右
    双目运算符
    13
    ?:
    条件运算符
    表达式1? 表达式2: 表达式3
    自右到左
    三目运算符

    14

    赋值运算符
    变量=表达式
    自右到左
    /=
    除后赋值
    变量/=表达式

=
乘后赋值
变量
=表达式
%=
取模后赋值
变量%=表达式
+=
加后赋值
变量+=表达式
-=
减后赋值
变量-=表达式
<<=
左移后赋值
变量<<=表达式

=
右移后赋值
变量>>=表达式
&=
按位与后赋值
变量&=表达式
^=
按位异或后赋值
变量^=表达式
|=
按位或后赋值
变量|=表达式
15
,
逗号运算符
表达式,表达式,…
自左到右
从左向右顺序运算

请大家经常把上表拿出来看看,为什么呢,如果你不是经常用到你肯定会忘记。另外同一优先级的运算符,运算次序由结合方向所决定。

其实不要看表这么大,你主要要记住很关键的几个,我们把表简化一下。

下表为简化后的C语言编程运算符的优先级和结合性表
优先级运算符名称或含义使用形式结合方向1[]数组下标数组名[常量表达式]自左到右()圆括号(表达式)/函数名(形参表).成员选择(对象)对象.成员名->成员选择(指针)对象指针->成员名++后置自增运算符++变量名—后置自减运算符–变量名2–负号运算符-表达式自右到左(类型)强制类型转换(数据类型)表达式++前置自增运算符变量名++—前置自减运算符变量名–取值运算符指针变量&取地址运算符&变量名!逻辑非运算符!表达式按位取反运算符表达式sizeof长度运算符sizeof(表达式)3/除表达式/表达式自左到右乘表达式表达式%余数(取模)整型表达式/整型表达式4+加表达式+表达式自左到右–减表达式-表达式6>大于表达式>表达式自左到右>=大于等于表达式>=表达式<小于表达式<表达式<=小于等于表达式<=表达式7==等于表达式==表达式自左到右!=不等于表达式!= 表达式8&按位与表达式&表达式自左到右10|按位或表达式|表达式自左到右11&&逻辑与表达式&&表达式自左到右12||逻辑或表达式||表达式自左到右

上表仅为初学者方便记忆时使用,等记住并熟练后,再去记住上面的完整表。

Visual Studio 2022的编译器在编译C语言时,也遵守上面的规则。

各位小伙伴,这次我们就说到这里,下次我们再深入研究Visual Studio 2022这个强大的工具,相信你一定能喜欢上Visual Studio 2022。


文章来源: https://blog.csdn.net/wang2015cn/article/details/123774936
版权声明: 本文为博主原创文章,遵循CC 4.0 BY-SA 知识共享协议,转载请附上原文出处链接和本声明。


...全文
123 回复 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
回复
切换为时间正序
请发表友善的回复…
发表回复

5,840

社区成员

发帖
与我相关
我的任务
社区描述
微软技术社区为中国的开发者们提供一个技术干货传播平台,传递微软全球的技术和产品最新动态,分享各大技术方向的学习资源,同时也涵盖针对不同行业和场景的实践案例,希望可以全方位地帮助你获取更多知识和技能。
windowsmicrosoft 企业社区
社区管理员
  • 王瑞MVP
  • 郑子铭
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

微软技术社区为中国的开发者们提供一个技术干货传播平台,传递微软全球的技术和产品最新动态,分享各大技术方向的学习资源,同时也涵盖针对不同行业和场景的实践案例,希望可以全方位地帮助你获取更多知识和技能。

予力众生,成就不凡!微软致力于用技术改变世界,助力企业实现数字化转型。

试试用AI创作助手写篇文章吧