精华内容
下载资源
问答
  • C语言符号优先级
    2021-11-06 17:37:57

    一共有15级。除了三类结合性是从右到左(单目运算符、三目运算符、=),大多数的运算符都是从左到右。

    优先级:算术运算符>关系运算符>逻辑运算符>赋值运算符。逻辑运算符中逻辑非除外。逗号运算符优先级最低

    1. []、()、.、->
    2. -、(类型)、++、–、*、&、!、~、sizeof
    3. /、*、%
    4. +、-
    5. <<、>>
    6. 、>=、<、<=

    7. ==、!=
    8. &
    9. ^
    10. |
    11. &&
    12. ||
    13. ?:
    14. =、/=、*=、%=、+=、-=、<<=、>>=、&=、^=、|=
    15. ,
    更多相关内容
  • C语言符号优先级

    2021-05-22 06:37:24
    一. 问题的引出今天看阿里...}解答:如果想要答对这道题目,首先要清楚C语言中符号的优先级别,负号(-)的优先级高于^,所以2^31-3=2^28,还有一个陷阱就是C语言中认为^为异或运算而不是幂函数,所以2^28=30,然后计...

    一. 问题的引出

    今天看阿里的笔试题,看到一个非常有意思的题目,但是很容易出错。

    题目:如下函数,在32bit系统foo(2^31-3)的值是:

    Int foo(int x)

    {

    return x&-x;

    }

    解答:如果想要答对这道题目,首先要清楚C语言中符号的优先级别,负号(-)的优先级高于^,所以2^31-3=2^28,还有一个陷阱就是C语言中认为^为异或运算而不是幂函数,所以2^28=30,然后计算30 & -30得出结果。又因为计算机内存中的数据是以二进制的补码形式存在的,所以参与位运算的数都是以补码形式出现。所以需要把30和-30转换为补码之后再进行按位与运算,结果为2。我们还可以用程序看看执行过程中产生的x的值如下:

    #include

    using namespace std;

    int foo(int x){

    cout << "x = " << x << endl;

    return x & -x;

    }

    void main(){

    int res = ;

    res = foo(^-);

    cout << "res = " << res << endl;

    }

    二. 字符的优先级

    优先级

    运算符

    名称或含义

    使用形式

    结合方向

    说明

    1

    []

    数组下标

    数组名[常量表达式]

    左到右

    ()

    圆括号

    (表达式)/函数名(形参表)

    .

    成员选择(对象)

    对象.成员名

    ->

    成员选择(指针)

    对象指针->成员名

    2

    -

    负号运算符

    -表达式

    右到左

    单目运算符

    (类型)

    强制类型转换

    (数据类型)表达式

    ++

    自增运算符

    ++变量名/变量名++

    单目运算符

    --

    自减运算符

    --变量名/变量名--

    单目运算符

    *

    取值运算符

    *指针变量

    单目运算符

    &

    取地址运算符

    &变量名

    单目运算符

    !

    逻辑非运算符

    !表达式

    单目运算符

    ~

    按位取反运算符

    ~表达式

    单目运算符

    sizeof

    长度运算符

    sizeof(表达式)

    3

    /

    表达式/表达式

    左到右

    双目运算符

    *

    表达式*表达式

    双目运算符

    %

    余数(取模)

    整型表达式/整型表达式

    双目运算符

    4

    +

    表达式+表达式

    左到右

    双目运算符

    -

    表达式-表达式

    双目运算符

    5

    <<

    左移

    变量<

    左到右

    双目运算符

    >>

    右移

    变量>>表达式

    双目运算符

    6

    >

    大于

    表达式>表达式

    左到右

    双目运算符

    >=

    大于等于

    表达式>=表达式

    双目运算符

    <

    小于

    表达式

    双目运算符

    <=

    小于等于

    表达式<=表达式

    双目运算符

    7

    ==

    等于

    表达式==表达式

    左到右

    双目运算符

    !=

    不等于

    表达式!= 表达式

    双目运算符

    8

    &

    按位与

    表达式&表达式

    左到右

    双目运算符

    9

    ^

    按位异或

    表达式^表达式

    左到右

    双目运算符

    10

    |

    按位或

    表达式|表达式

    左到右

    双目运算符

    11

    &&

    逻辑与

    表达式&&表达式

    左到右

    双目运算符

    12

    ||

    逻辑或

    表达式||表达式

    左到右

    双目运算符

    13

    ?:

    条件运算符

    表达式1? 表达式2:表达式3

    右到左

    三目运算符

    14

    =

    赋值运算符

    变量=表达式

    右到左

    /=

    除后赋值

    变量/=表达式

    *=

    乘后赋值

    变量*=表达式

    %=

    取模后赋值

    变量%=表达式

    +=

    加后赋值

    变量+=表达式

    -=

    减后赋值

    变量-=表达式

    <<=

    左移后赋值

    变量<<=表达式

    >>=

    右移后赋值

    变量>>=表达式

    &=

    按位与后赋值

    变量&=表达式

    ^=

    按位异或后赋值

    变量^=表达式

    |=

    按位或后赋值

    变量|=表达式

    15

    ,

    逗号运算符

    表达式,表达式,…

    左到右

    从左向右顺序运算

    说明:同一优先级的运算符,运算次序由结合方向所决定。

    三. 优先级口诀

    括号成员第一;         括号运算符[]() 成员运算符.  ->

    全体单目第二;         所有的单目运算符比如++ -- +(正) -(负) 指针运算*&

    乘除余三,加减四;      这个"余"是指取余运算即%

    移位五,关系六;       移位运算符:<< >> ,关系:> < >= <= 等

    等于(与)不等排第七;   即== !=

    位与异或和位或;       这几个都是位运算: 位与(&)异或(^)位或(|)

    "三分天下"八九十;

    逻辑或跟与;           逻辑运算符:|| 和 &&

    十二和十一;           注意顺序:优先级(||)  底于 优先级(&&)

    条件高于赋值,          三目运算符优先级排到 13 位只比赋值运算符和","高

    逗号运算级最低!       逗号运算符优先级最低

    参考资料

    [1] http://blog.chinaunix.net/uid-23577393-id-2733234.html

    [2] http://blog.csdn.net/zhlfox2006/article/details/11854799

    [3] http://www.aichengxu.com/article/c%E8%AF%AD%E8%A8%80/31501_11.html

    C语言符号优先级

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

    【转】C语言中的符号优先级

    转自: http://blog.csdn.net/huangblog/article/details/8271791 虽然在日常使用中,添加括号来明确规定运算符优先级是一种常识,但毕竟学校考试就喜欢考 ...

    c语言运算优先级与结合方向的问题

    c语言运算的结合方向一直困扰我,不过我终于get到了哈哈 先附上c语言运算优先级和结合方向图片 以上有c语言一共的15个优先级,从上往下递增 c语言的运算符号有很多,当我们打代码或者看代码的时候符号多 ...

    一道c语言运算符优先级问题

    一道c语言运算符优先级问题 #include using namespace std; int main() { char test[] = {"This ...

    C语言操作符优先级

    C语言操作符优先级 优先级 运算符 含    义 要求运算 对象的个数 结合方向 1 () [] -> . 圆括号 下标运算符 指向结构体成员运算符 结构体成员运算符 自左至右 2 ! 逻辑非运 ...

    C&plus;&plus;符号优先级

    C++符号优先级 优先级 操作符 功能 用法 结合性 1 ()[]->.::++-- Grouping operatorArray accessMember access from a poin ...

    C语言运算符优先级总结

    一 写在开头1.1 本文内容本文内容为C语言中运算符优先级的总结.转载于:https://blog.csdn.net/huangblog/article/details/8271791,感谢原作者的付 ...

    C语言运算符优先级和ASCII表

    1. C语言运算符优先级及结合性 优先级 运算符 名称或含义 使用形式 结合方向 说明 1 [] 数组下标 数组名[常量表达式] 左到右 -- () 圆括号 (表达式)/函数名(形参表) -- . 成 ...

    C语言运算符优先级及结合性

    今天去翻了下C语言运算符的优先级和结合性,发现当初学习的时候就没认真记住,惭愧.发现一篇讲得不错的文章,编辑了下转来供以后翻阅. C语言运算符优先级表(由上至下,优先级依次递减) 运算符 结合性 () ...

    &lpar;转&rpar;C语言运算符优先级 详细列表

    C语言运算符优先级 详细列表 文章转自:Slyar Home 优先级 运算符 名称或含义 使用形式 结合方向 说明 1 [] 数组下标 数组名[常量表达式] 左到右   () 圆括号 (表达式)/函数 ...

    随机推荐

    何为babel &sol; gulp

    Babel主要用来将新版本的javascript(ES6,ES7)编译为ES5,目前它对于新标准的支持程度甚至高于Chrome浏览器.通过引入预设babel-preset-react,babel还能解 ...

    hbase-site&period;xml 配置详解

    hbase.rootdir 这个目录是region server的共享目录,用来持久化HBase.URL需要是'完全正确'的,还要包含文件系统的scheme.例如,要表示hdfs中的'/hbase'目 ...

    【jQuery UI 1&period;8 The User Interface Library for jQuery】&period;学习笔记&period;5&period;Accordion控件

    accordion是另一个UI控件,能允许你将一组content加入相互分隔的.能够被浏览者的交互打开或关闭的panels中.因此,它大多数的content在初始化的时候是隐藏的,很像tabs控件.每 ...

    Nunit概要

    一.NUnit是一个单元测试框架,专门针对于.NET来写的.其实在前面有JUnit(Java),CPPUnit(C++),他们都是xUnit的一员.最初,它是从JUnit而来.现在的版本是2.2.接下 ...

    Objective-C基础教程读书笔记&lpar;7&rpar;

    第7章 深入了解Xcode Xcode是一个很好用的工具,有很多强大的功能,不过并不是所有的功能都易于发现.如果你打算长期使用这个强大的工具,就肯定要尽可能多了解它.本章将介绍一些Xcode编辑器的使 ...

    jQuery extend函数详解

    一 jQuery的扩展方法原型是 $.extend(dest,src1,src2,src3); 含义是将src1,src2,src3合并到dest中,返回值为合并后的dest,该方法合并后,dest的 ...

    FileReader读取本地文件

    FileReader是一种异步读取文件机制,结合input:file可以很方便的读取本地文件. 一.input:type[file] file类型的input会渲染为一个按钮和一段文字.点击按钮可打开 ...

    Day6 Numerical simulation of optical wave propagation之通过随机介质(如大气湍流)的传播(二)

    2.蒙特卡洛相位屏 大气折射率变化是一个随机的过程,通过大气的光程长度也同样是随机的.因此,湍流模型仅给出统计平均值,如折射率变量的结构函数和功率谱. 建立大气相位屏的问题就是产生随机过程独立表达式的 ...

    学习笔记TF050&colon;TensorFlow源代码解析

    TensorFlow目录结构. ACKNOWLEDGMENTS #TensorFlow版本声明 ADOPTERS.md #使用TensorFlow的人员或组织列表 AUTHORS #TensorFlo ...

    展开全文
  • 常见符号测试代码如下: void priority_test1() { int a = 2, b = 2, c; //-- 与正负 c = -++a; cout << c << endl; cout << endl; //正负与乘除 a = 10; c = -++a % 4; cout <<...

    常见符号测试代码如下:

    void priority_test1() {
    	int a = 2, b = 2, c;
    	//-- 与正负
    	c = -++a;
    	cout << c << endl;
    	cout << endl;
    	//正负与乘除
    	a = 10;
    	c = -++a % 4;
    	cout << c << endl;
    	c = -++a * 2;
    	cout << c << endl;
    	cout << endl;
    	//*/%
    	a = 10, b = 4;
    	c = a % b * b / 3;
    	cout << c << endl;
    
    	//+-与赋值
    	a = 10, b = 4, c = 2;
    	c -= a - b;
    	cout << c << endl;
    
    	a = 10, b = 4, c = 2;
    	c *= (-++a % c * c - b / 2) * 5;
    	cout << c << endl;
    }
    

    结论

     偏僻符号测试如下

    	//位或(逻辑)小于乘除 位移>|
    	int a = 8, b = 2, c;
    	c = a << 4 % 3;
    	cout << c << endl;
    	cout << endl;
    
    	a = 8, b = 2;
    	c = a << 4 | 0b11;
    	cout << c << endl;
    	cout << endl;
    
    	a = 8, b = 2;
    	c = a | 3 << 2;  // 11*4先与
    	cout << c << endl;
    	c = a | 12;
    	cout << c << endl;
    	cout << endl;
    
    	//位移与加减
    	c = 2 + 1 << 3;
    	cout << c << endl;
    
    	//位移与关系逻辑
    	c =   1 & 5 << 2;
    	cout << "c:" << c << endl;
    	b = 5 << 2;
    	cout << (2 & b)  << endl;
    	cout << c << endl;
    
    	c =  1 << 2 + 1;
    	cout << "c:" << c << endl;
    	c =  1 | 1 << 2 + 1;
    	cout << "c:" << c << endl;
    	c =  1 | 1 << 2 | 2;//100==-101--111
    	cout << "c:" << c << endl;

     所遇全部符号优先级

    	a = !0 + 5 && 2;
    	cout  << a << endl;
    	a = !0 + 5 << 2;
    	cout  << a << endl;

     

    展开全文
  • c语言运算符号优先级

    2021-05-25 06:30:53
    /**************************************************************************/01 左结合_()、[]、->、.() 圆括号[] 下标运算符-> 指向结构体成员运算符. 结构体成员运算符/*******************************...

    /**************************************************************************/

    01 左结合_()、[]、->、.

    () 圆括号

    [] 下标运算符

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

    . 结构体成员运算符/**************************************************************************/

    02 右结合 ( 单目运算符 )_!、~、++、--、-

    ! 逻辑非运算符

    ~ 按位取反运算符

    ++ 自增运算符

    -- 自减运算符

    - 负号运算符

    (类型) 类型转换运算符

    * 指针运算符

    & 地址与运算符

    sizeof 长度运算符/**************************************************************************/

    03 左结合 ( 算术运算符 )_*、/、%

    * 乘法运算符

    / 除法运算符

    % 取余运算符/**************************************************************************/

    04 左结合 ( 算术运算符 )_+、-

    + 加法运算符

    - 减法运算符/**************************************************************************/

    05 左结合 (移位运算)_<>

    << 左移运算符

    >> 右移运算符/**************************************************************************/

    06 左结合 ( 关系运算符 )、>=

    、>= 关系运算符/**************************************************************************/

    07 左结合 ( 关系运算符 )_==、!=

    == 等于运算符

    != 不等于运算符/**************************************************************************/

    08 左结合 ( 按位逻辑运算 )_&

    & 按位与运算符/**************************************************************************/

    09 左结合 ( 按位逻辑运算 )_^

    ^ 按位异或运算符/**************************************************************************/

    10 左结合 ( 按位逻辑运算 )_|

    | 按位或运算符/**************************************************************************/

    11 左结合 ( 逻辑运算 )

    && 逻辑与运算符/**************************************************************************/

    12 左结合 ( 逻辑运算 )_ ||

    || 逻辑或运算符/**************************************************************************/

    13 右结合_ ? :

    ? : 条件运算符/**************************************************************************/

    14 右结合 ( 赋值运算符 )_=、+=、-=、*=、/=、%=、&=、^=、|=、<<=、>>=

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

    15 左结合 ( 逗号运算符 )_,

    , 逗号运算符

    /*\*=============================================*/*\

    展开全文
  • C语言符号优先级

    万次阅读 多人点赞 2018-04-20 12:30:03
    C语言总共有15个优先级,下面我将一一介绍 数字越大所代表的优先级越高 二. 15优先级有: 强制,下标,成员,结合性为从左向右,从左向右其实就是我们正常的数学运算符的结合性 强制:()这个符号所代表的含义...
  • 转自:http://blog.csdn.net/huangblog/article/details/8271791虽然在日常使用,添加括号来明确规定运算符优先级是一种常识,但毕竟学校考试就喜欢考这些。没办法了,改变自己比改变世界更容易。说明:同一优先级...
  • #分享知识,分享快乐#由于个人需要,整理了一份优先级的对比文档,深知初学者的不容易,特在此分享,希望大家一起进步。
  • C语言符号优先级

    2019-12-25 09:12:02
  • C语言中运算符号优先级发布时间:2020-06-20 16:13:39来源:亿速云阅读:117作者:Leah这期内容当中小编将会给大家带来有关C语言中运算符号优先级,以专业的角度为大家分析和叙述,阅读完这篇文章希望大家可以...
  • C语言符号优先级.doc

    2022-01-12 11:33:51
    C语言符号优先级
  • C语言的算术优先级

    千次阅读 2020-08-01 19:44:29
    语言的i运算符包括单目运算符、双目运算符、三目运算符,优先级如下: 第1优先级:各种括号,如()、[]等、成员运算符 . ; 第2优先级:所有单目运算符,如++、--、!、~等; 第3优先级:乘法运算符*、除法运算符/...
  • C语言符号优先级.pdf

    2020-09-03 15:30:29
    附录 2 C 语言的运算符及其优先级 附录 2 C 语言的运算符及其优先级 优先级 运算符 名称或含义 使用形式 结合方向 说明 [] 数组下标 数组名 [ 常量表达式 ] 表达式/ 函数名 ) 圆括号 1 ( 形参表 ) 左到右 ....
  • C语言运算符号优先级

    2019-10-01 00:11:04
    C语言基本上是所有语言里面运算符号最多的一种了。学习C语言不可避免要运用到运算符号优先级和结合性是学习符号最重要的点。 2、优先级和结合性 基本优先级:  指针最优,单目运算优于双目运算。如正负号。 ...
  • C语言运算符优先级

    2021-07-04 16:50:06
    1、C语言一共有15个优先级 2、有三种结合方向是从右向左(单目运算符、条件表达式、赋值运算符) 3、同一优先级的运算符,运算次序由结合方向所决定 记忆口诀: 括号成员排第1, 单目运算排第2, 乘除余3、加...
  • C语言运算符号优先级顺序.pdf
  • 优先级从上到下,然后看结合方向,不好记。顺便再看看运算符 解释 结合方式() [] -> . 括号(函数等),数组,两种结构成员访问 由左向右! ~ ++ -- + - * & (类型) sizeof否定,按位否定,...
  • 优先级
  • 关于c语言中符号的意义,以及优先级

    万次阅读 多人点赞 2017-10-25 19:06:31
    ? x:y 类似于if语句,例如: x>9?50:100; 意思是x是否大于9 ,是的话就输出50,不是的话就输出100; 字母与数字比较大小,实际比较ASCII码值大小,字母都大于数字。 c语言中,!...c语言中,&&表示逻辑且
  • 最近在做一个读EEPROM的电压数据,并把数据通过CAN报文发送到上位机的功能。 由于EEPROM读出来的数据是一个字节大小的数据,长度是8位,而电压数据大小是12位,并且,读出来后要把数据再重新整理一下。 一串电池...
  • c语言运算符号优先级本文来自百度搜索只为查看方便优先级等级口诀:圆方括号、箭头一句号, 自增自减非反负、针强地址长度,乘除,加减,再移位,小等大等、等等不等,八位与,七位异,六位或,五与,四或,三疑,...
  • C语言】运算符优先级

    千次阅读 2021-10-29 11:50:34
    运算符优先级 最重要的是要搞清楚运算符的优先级和运算顺序。 1. 括号是第一 2. 单目是其次**【右结合性】** 3. 加减乘除余 移位 5. 关系运算符(≤,≥,<,>\leq,\geq,<,>≤,≥,<,>高于=,!==,...
  • C语言中运算符优先级排序

    千次阅读 2021-02-27 10:53:28
    展开全部C语言中运算符优先级排序如下:分为优先级15级:1、圆括号【()】、下标运算符【[]】、分量运62616964757a686964616fe59b9ee7ad9431333431353432算符的指向结构体成员运算符【->】、结构体成员运算符【.】...
  • C语言运算符的优先级

    2021-02-16 22:07:37
    可以看出,所有比较运算符的优先级都低于二元算术运算符,二元逻辑运算符的优先级低于比较运算符。...运算符在逻辑运算符优先级最高。因此,翻转逻辑表达式的值时,逻辑表达式外面的括号是必需的。 ...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 36,505
精华内容 14,602
关键字:

c语言中符号的优先级