三目运算符不易发现的错误

System.Threading.Thread t=null;
string message = "I‘m cookie and " + t == null ? "You‘re nicky" : "";

请问最后message是啥?看仔细奥!

给出一个运算符优先级表吧。


优先级

运算符

名称或含义

使用形式

结合方向

说明

1

[]

数组下标

数组名[常量表达式]

左到右
 

()

圆括号

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

.

成员选择(对象)

对象.成员名
 

->

成员选择(指针)

对象指针->成员名
 

2

-

负号运算符

-表达式

右到左

单目运算符

(类型)

强制类型转换

(数据类型)表达式
 

++

自增运算符

++变量名/变量名++

单目运算符

--

自减运算符

--变量名/变量名--

单目运算符

*

取值运算符

*指针变量

单目运算符

&

取地址运算符

&变量名

单目运算符

!

逻辑非运算符

!表达式

单目运算符

~

按位取反运算符

~表达式

单目运算符

sizeof

长度运算符

sizeof(表达式)
 

3

/


表达式/表达式

左到右

双目运算符

*


表达式*表达式

双目运算符

%

余数(取模)

整型表达式/整型表达式

双目运算符

4

+


表达式+表达式

左到右

双目运算符

-


表达式-表达式

双目运算符

5

<<

左移

变量<<表达式

左到右

双目运算符

>>

右移

变量>>表达式

双目运算符

6

>

大于

表达式>表达式

左到右

双目运算符

>=

大于等于

表达式>=表达式

双目运算符

<

小于

表达式<表达式

双目运算符

<=

小于等于

表达式<=表达式

双目运算符

7

==

等于

表达式==表达式

左到右

双目运算符

!=

不等于

表达式!= 表达式

双目运算符

8

&

按位与

表达式&表达式

左到右

双目运算符

9

^

按位异或

表达式^表达式

左到右

双目运算符

10

|

按位或

表达式|表达式

左到右

双目运算符

11

&&

逻辑与

表达式&&表达式

左到右

双目运算符

12

||

逻辑或

表达式||表达式

左到右

双目运算符

13

?:

条件运算符

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

右到左

三目运算符

14

=

赋值运算符

变量=表达式

右到左
 

/=

除后赋值

变量/=表达式
 

*=

乘后赋值

变量*=表达式
 

%=

取模后赋值

变量%=表达式
 

+=

加后赋值

变量+=表达式
 

-=

减后赋值

变量-=表达式
 

<<=

左移后赋值

变量<<=表达式
 

>>=

右移后赋值

变量>>=表达式
 

&=

按位与后赋值

变量&=表达式
 

^=

按位异或后赋值

变量^=表达式
 

|=

按位或后赋值

变量|=表达式
 

15

,

逗号运算符

表达式,表达式,…

左到右

从左向右顺序运算
时间: 2024-10-05 14:41:04

三目运算符不易发现的错误的相关文章

调试STM32程序一些浅显又不易发现的问题

1 串口映射Printf后是否勾选上USE MicroLIB ? 今天没有勾选这个选项结果无法进入main函数 2 定义计数用的变量cntx时是否大于255但是仍然用的u8 ? u8最大值是255 这个错误非常低级但是总是让人费很大的劲才找到. 3 像下面这种语句 ,这条if后面多了个分号.非常容易被忽略 if(flag); { ...... } 调试STM32程序一些浅显又不易发现的问题

RDP 协议组件 X.224 在协议流中发现一个错误并且中断了客户端连接

如果你的服务器有如下错误: “RDP 协议组件 X.224 在协议流中发现一个错误并且中断了客户端连接.” 可能的有2种: 1:你试试能否能继续远程登陆,有可能你的远程登陆组件出现问题. 2:有人攻击你,使用暴力破解的方法登陆你的系统,导致系统拒绝服务. 一句话注意防贼!! 解决方法: 设置组策略=====>管理摸板=====>wndows组件====>终端服务!! 新的补充(比较狠的解决方法,呵呵.): 事件类型: 错误 事件来源: TermDD 描述: RDP 的 "DAT

Android爬坑之旅之不易发现的BUG

在Android的app开发过程中,除了机型适配等问题,常常还会出一些特殊的bug,这些bug往往需要特殊的场景情况下才会发生,这里罗列了一些平时项目中遇到的问题及注意点. App打包apk安装后重复启动根界面的问题 这个问题很特殊,一般情况下很难被发现,是Android系统一直以来的一个Bug. 当我们把app打包成apk安装程序,通过点击apk文件进行安装时,会启动安装界面, 并在安装成功后会跳转安装完成界面, 如图: 我们点击图中的 打开按钮,此时会启动我们的app 这里为了让大家更容易理

在所有代码都正确的情况下,OpenGL加载不了纹理的原因之一(不易发现)

最近需要写一个简单的显示程序,把图片贴在多边形上,代码之前用过的保证没有问题,结果死活不能显示图片. 断断续续看了一个多月,也多次编译网上的各种demo,就是没发现问题. OpenGL支持的最大纹理是16384,我的图片是5780,肯定没超. 但是神奇的是,我把图片缩小一倍,竟然可以显示了,这就可以了,真是无语了,到底为什么呢?反正是可以显示了.

包裹系统编写以及过程中发现的错误

1 #include <iostream> 2 #include <string> 3 using namespace std; 4 5 typedef enum iStatus { Sendtothewarehouse, Hasstarted, Ontheway, Arriveatthewarehouse, Hasbeendistributed, Hasbeenreceived } Status; 6 typedef enum iworkerStatus { Working, V

让你提前认识软件开发(51):VC++集成开发环境中Linux下Pclint工程的配置方法及常见错误修改

第3部分 软件研发工作总结 VC++集成开发环境中Linux下Pclint工程的配置方法及常见错误修改 [文章摘要] Pclint是一种C/C++软件代码静态分析工具.它是一种更加严格的编译器,能够发现普通编译器所不能发现的代码中的很多问题,因此被广泛应用于软件开发项目中. 本文介绍了如何在VC++集成开发环境中配置Linux下的Pclint工程,给出了C语言中pclint规则A检查的常见错误,并描述了对应的修改办法. [关键词] VC++  Pclint  配置  操作  修改 1. 前言 P

lodash用法系列(4),使用Map/Reduce转换

Lodash用来操作对象和集合,比Underscore拥有更多的功能和更好的性能. 官网:https://lodash.com/引用:<script src="//cdnjs.cloudflare.com/ajax/libs/lodash.js/2.4.1/lodash.min.js"></script>安装:npm install lodash 首先通过npm安装lodash:npm i --save lodash 在js文件中引用lodash:var _ =

一些刷题过程中的结论

来源UVA 10313 整数i拆分成不超过j个整数的拆分方案数,是和整数i拆成若干个值不超过j的整数的拆分方案数是相同的 原理 Ferrers图像 详:http://blog.csdn.net/shiqi_614/article/details/7001949 关于C++引用带的的不易发现的错误.来自于一个4维DP.UVA 10913 例如int&res=dp[i][j][p][q].如果在这个记忆化搜索子过程中需要更新i,j,p,q;比如在当前递归中p++,那么此时的res是dp[i][j][

读javascript高级编程02-变量作用域

一. 延长作用域链 有些语句可以在作用域前端临时增加一个变量对象,该变量对象在代码执行完成后会被移除. ①with语句延长作用域. function buildUrl(){ var qs="?debug=true"; with(location){ var url=href+qs; } return url; } buildUrl(); //result:http://www.fanxbao.com/?debug=true ②try...catch...中的catch语句块延长作用域链