c语言运算符号

c语言运算符号

1级优先级 左结合

() 圆括号

[] 下标运算符

-> 指向结构体成员运算符

. 结构体成员运算符

++ 后缀增量运算符

-- 后缀增量运算符

2级优先级 右结合

! 逻辑非运算符

~ 按位取反运算符

++ 前缀增量运算符

-- 前缀增量运算符

- 负号运算符

(类型) 类型转换运算符

* 指针运算符

& 地址与运算符

sizeof 长度运算符

3级优先级 左结合

* 乘法运算符

/ 除法运算符

% 取余运算符

4级优先级 左结合

+ 加法运算符

- 减法运算符

5级优先级 左结合

>> 右移运算符

6级优先级 左结合

、>= 关系运算符

7级优先级 左结合

== 等于运算符

!= 不等于运算符

8级优先级 左结合

& 按位与运算符

9级优先级 左结合

^ 按位异或运算符

10级优先级 左结合

| 按位或运算符

11级优先级 左结合

&& 逻辑与运算符

12级优先级 左结合

|| 逻辑或运算符

13级优先级 右结合

? : 条件运算符

14级优先级 右结合

= += -= *= /= %= &= ^= |= >= 全为赋值运算符

15级优先级 左结合

, 逗号运算符

优先级从上到下依次递减,最上面具有最高的优先级,逗号操作符具有最低的优先级。

所有的优先级中,只有三个优先级是从右至左结合的,它们是单目运算符、条件运算符、赋值运算符。其它的都是从左至

右结合。

具有最高优先级的其实并不算是真正的运算符,它们算是一类特殊的操作。()是与函数相关,[]与数组相关,而->及.是

取结构成员。

其次是单目运算符,所有的单目运算符具有相同的优先级,因此在我认为的 真正的运算符中它们具有最高的优先级,又

由于它们都是从右至左结合的,因此*p++与*(p++)等效是毫无疑问的。

接下来是算术运算符,*、/、%的优先级当然比+、-高了。

移位运算符紧随其后。

其次的关系运算符中, >=要比 == !=高一个级别,不大好理解。

所有的逻辑操作符都具有不同的优先级(单目运算符出外,!和~)

逻辑位操作符的"与"比"或"高,而"异或"则在它们之间。

跟在其后的&&比||高。

接下来的是条件运算符,赋值运算符及逗号运算符。

在C语言中,只有4个运算符规定了运算方向,它们是&&、| |、条件运算符及赋值运算符。

&&、| |都是先计算左边表达式的值,当左边表达式的值能确定整个表达式的值时,就不再计算右边表达式的值。如 a = 0

&& b; &&运算符的左边位0,则右边表达式b就不再判断。

在条件运算符中。如a?b:c;先判断a的值,再根据a的值对b或c之中的一个进行求值。

赋值表达式则规定先对右边的表达式求值,因此使 a = b = c = 6;成为可能。

c语言运算符号

1级优先级 左结合

() 圆括号

[] 下标运算符

-> 指向结构体成员运算符

. 结构体成员运算符

++ 后缀增量运算符

-- 后缀增量运算符

2级优先级 右结合

! 逻辑非运算符

~ 按位取反运算符

++ 前缀增量运算符

-- 前缀增量运算符

- 负号运算符

(类型) 类型转换运算符

* 指针运算符

& 地址与运算符

sizeof 长度运算符

3级优先级 左结合

* 乘法运算符

/ 除法运算符

% 取余运算符

4级优先级 左结合

+ 加法运算符

- 减法运算符

5级优先级 左结合

>> 右移运算符

6级优先级 左结合

、>= 关系运算符

7级优先级 左结合

== 等于运算符

!= 不等于运算符

8级优先级 左结合

& 按位与运算符

9级优先级 左结合

^ 按位异或运算符

10级优先级 左结合

| 按位或运算符

11级优先级 左结合

&& 逻辑与运算符

12级优先级 左结合

|| 逻辑或运算符

13级优先级 右结合

? : 条件运算符

14级优先级 右结合

= += -= *= /= %= &= ^= |= >= 全为赋值运算符

15级优先级 左结合

, 逗号运算符

优先级从上到下依次递减,最上面具有最高的优先级,逗号操作符具有最低的优先级。

所有的优先级中,只有三个优先级是从右至左结合的,它们是单目运算符、条件运算符、赋值运算符。其它的都是从左至

右结合。

具有最高优先级的其实并不算是真正的运算符,它们算是一类特殊的操作。()是与函数相关,[]与数组相关,而->及.是

取结构成员。

其次是单目运算符,所有的单目运算符具有相同的优先级,因此在我认为的 真正的运算符中它们具有最高的优先级,又

由于它们都是从右至左结合的,因此*p++与*(p++)等效是毫无疑问的。

接下来是算术运算符,*、/、%的优先级当然比+、-高了。

移位运算符紧随其后。

其次的关系运算符中, >=要比 == !=高一个级别,不大好理解。

所有的逻辑操作符都具有不同的优先级(单目运算符出外,!和~)

逻辑位操作符的"与"比"或"高,而"异或"则在它们之间。

跟在其后的&&比||高。

接下来的是条件运算符,赋值运算符及逗号运算符。

在C语言中,只有4个运算符规定了运算方向,它们是&&、| |、条件运算符及赋值运算符。

&&、| |都是先计算左边表达式的值,当左边表达式的值能确定整个表达式的值时,就不再计算右边表达式的值。如 a = 0

&& b; &&运算符的左边位0,则右边表达式b就不再判断。

在条件运算符中。如a?b:c;先判断a的值,再根据a的值对b或c之中的一个进行求值。

赋值表达式则规定先对右边的表达式求值,因此使 a = b = c = 6;成为可能。


相关内容

  • 汇编基础知识
  • 第1章 汇编语言基础知识 1.教学目的:掌握汇编语言概念极其使用的进位计数制.不同进位计数制之间的转换.计算机编码以及基本数据类型. 2.教学要求: ①了解汇编语言的基本概念 ②理解汇编语言使用的进位计数制 ③熟练掌握不同进制之间转换.计算机的编码 ④熟悉汇编语言中的基本数据类型 3.教学重点: ① ...

  • 小学数学符号感意识
  • 小学数学符号意识的理解与培养 [前言概况] ●对数学核心素养的理解 数学核心素养是数学学习者在学习数学或学习数学某一个领域所应达成的综合性能力. 数学核心素养是数学的教与学过程应当特别关注的基本素养.<义务教育数学课程标准(2011年版)>(以下简称<标准>)明确提出10个核 ...

  • 七年级数学上册新教材解读(最新2011人教版)
  • 七年级数学上册新教材解读 第1章 有理数 一.教材主要变化 二.教学建议 1. 注意不同章节之间的联系 全面掌握整章知识结构,理清知识内在逻辑关系,合理利用学生已有的经验,在小学对"数及其运算"的基础上展开新内容.如:从学生熟悉的现实问题出发引入有关内容,如用"增与减& ...

  • 软考程序员
  • 软考程序员考前练习试题及答案解析(1) 一.选题题 1.二进制语言是属于( ) A.面向机器语言 B.面向问题语言 C.面向过程语言 D.面向汇编语言 [解析]人们研制了许许多多计算机程序设计语言,其中二进制语言直接来自计算机的指令系统,与具体计算机紧密相关,所以是一种面向机器语言.面向问题语言是为 ...

  • 人工智能的日常应用--论文
  • 研究生学位课程论文 论 文 题 目:人工智能的日常应用 人工智能的日常应用 摘 要:人工智能(Artificial Intelligence),英文缩写为AI,是一门由计算机科学.控制论.信息论.语言学.神经生理学.心理学.数学.哲学等多种学科相互渗透而发展的综合性学科.21世纪是计算机科技飞速发展 ...

  • [集合]教学设计
  • 集合教学设计 唐建 孙长娟 吴朝晖 王律斯 张萍 高晓玲 孙延飞 宋小妹 门秋佳 关闳 数学科学之所以被广泛应用.一个重要的原因是数学能运用数学语言将客观事物的数量关系和数学结构表示出来.符号化.形式化是数学的一个显著特点.学习数学的任务之一,就是学习用形式化语言去表述.解释.解决各种问题. 一.教 ...

  • 快乐课堂学数学-多余老师趣讲"整式的加减"-华东师范大学出版社七年级上册
  • 一. 本单元概述 看到"整式的加减",你能想到什么?(和已学内容会有什么联系.以后还会学到什么内容等) 如果,你在看到这个问题前,你就已经想到过,那么,祝贺你,你已经具备了一名中学生的理科意识. 整式的加减,肯定和整数的加减有很大的相关性. 以后,应该还要学整式的乘除. 学了整式 ...

  • 算法表达中的抽象机制(一)
  • 算法表达中的抽象机制(一) 简介 要用计算机解决一个稍为复杂的实际问题,大体都要经历如下的步骤. 将实际问题数学化,即把实际问题抽象为一个带有一般性的数学问题.这一步要引入一些数学概念,精确地阐述数学问题,弄清问题的已知条件.所要求的结果.以及在已知条件和所要求的结果之间存在着的隐式或显式的联系. ...

  • 人工智能论文11
  • 人工智能 2010.12.14 计算机学院计算机0702 韩松 3060605023 目录: 1 人工智能描述 2 人工智能的研究发展阶段 3 目前人工智能应用 4 人工智能研究展望 1 人工智能描述 人工智能(Artificial Intelligence) ,英文缩写为AI.它是研究.开发用于模 ...