C/C++(基础-运算符详解)
运算符
任何表达式是有值的
int a = 2;
int b = 3;
a*=b+4;//a=a*(b+4);"*"*=的优先级层次和=号的层次一样。
printf("%d\n",a);//14
%求与运算符号,等同于被求余数的数。而且运算符必须是整数。有时也能用于求整除的数(i%5==0)。
++自增运算:
++自己独立构成表达式的时候,前后++没有区别,如果++构成的表达式参与了其他表达式的构成运算,前++相当于加一运算,后++先使用后加一,完结后加1
int a = 5;
int b = 6;
printf("%d\n",a+++b);//12,编译原理编译到a后看能否构成表达式,a++构成表达式
关系表达式的运算结果只有1和0,常用语判断。
int x = 5;
int y = 6;
if(x == y ) {
printf("x == y\n");
}else{
printf("x != y\n");
}
//x != y;
if(x=y) {//y的值赋给x,if的条件除了0其余为真,内部是以非0判断为真的。
printf("x==y\n");
}else{
printf("x!=y\n");
}
//x==y;
[5,100)的表示:
5<= x <100错误的原因:
优先级相同,则从左至右算,5 <= x,先运算,运算之后将5 <= x的值(0或者1)再和100进行运算。
5 <= x && x < 100;
&&:将两侧的操作数逻辑化,0为假,非0为真。```c
int a = 3;
int b = 5;
if(a && 5 ) {//3为真,5为真
printf("xxxx\n");
}
if((a-a) && (b-a) ) {//a-a=0w为假
printf("xxxx\n");
}else{
printf("oooo\n");
}
!的优先级高于&&,||
```c
int a = 3;
int b = 5;
!a < b;//0 < 5 ==== !0
!(a < b);//==== 0
短路现象:
int a = 44;
int b = 55;
if( (a > 40 ) || (b = 66) ) {
printf("xxxxx%d\n",d);
} else{
printf("ooooo%d\n",d);
}
//a>40为真,(||只要有一个为真全真)发生短路d=55(d=66的赋值运算没有执行)
if( (a < 40) || (b =66 ) ) {
printf("xxxxxd%\n",d);
}else{
printf("ooooo%d\n",d);
}
//xxxxx66,第一个不成立,继续判断第二个,b=66,为真。
int a = 44;
int b = 55;
if( (a < 40 ) && (b = 66) ) {
printf("xxxxx%d\n",d);
} else{
printf("ooooo%d\n",d);
}
//a<40为假,(&&只有两个为真全真)发生短路d=55(d=66的赋值运算没有执行)
if( (a > 40) && (b =66 ) ) {
printf("xxxxxd%\n",d);
}else{
printf("ooooo%d\n",d);
}
//xxxxx66,第一个不成立,(&&只有两个为真全真)不会判断第二个直接为假。
短路提高了效率。
三元运算
a>b? c:(d>55?10:20);//从右至左
int t;
if(d>55)
t = 10;
else
t = 20;
if(a>b)
printf("%d",c);
else
printf("%d",t);
逗号表达式:
int xx;
xx = 1+1,2+1,3+2,5*5,5*7;//顺序求值遇到","相当于一个表达式,做赋值运算
printf("xx%d\n",xx);//2
xx = (1+1,2+1,3+2,5*5,5*7);//顺序求值,括弧优先级高,一次根据","最右边赋值。
printf("xx%d\n",xx);//35
printf("xx%d\n",1+1,2+1,3+2,5*5,5*7);//根据第一个,但是有问题
printf("aa%d xx%d\n",aa 1+1,2+1,3+2,5*5,5*7);//这样是有问题
printf("xx%d\n",(1+1,2+1,3+2,5*5,5*7 ) );
sizeof:类型大小运算
sizeof是一个关键字而不是一个函数,走关键字的路,让别人去说函数吧。
char c = 1;
int i = 10;
printf("sizeof(c+i)%d\n",sizeof(c+i));//4显示int的类型
printf("sizeof c+i %d\n",sizeof c+i );//11,sizeof没有括弧的时候它的运算符的游戏那几高于+,先算出c的类型长度位1,在参与运算
总结:() !,sizeof 算数 > 关系 > 逻辑(除!)?,:,= ,
C/C++(基础-运算符详解)的更多相关文章
- Net is as typeof 运行运算符详解 net 自定义泛型那点事
Net is as typeof 运行运算符详解 概述 在了解运行运算符的前提我们需要了解什么是RTTI ,在任何一门面向对象的语言中,都有RTTI这个概念(即 运行时). RTTI(Run-Ti ...
- I2C 基础原理详解
今天来学习下I2C通信~ I2C(Inter-Intergrated Circuit)指的是 IC(Intergrated Circuit)之间的(Inter) 通信方式.如上图所以有很多的周边设备都 ...
- python 3.x 爬虫基础---Urllib详解
python 3.x 爬虫基础 python 3.x 爬虫基础---http headers详解 python 3.x 爬虫基础---Urllib详解 前言 爬虫也了解了一段时间了希望在半个月的时间内 ...
- RabbitMQ基础知识详解
什么是MQ? MQ全称为Message Queue, 消息队列(MQ)是一种应用程序对应用程序的通信方法.MQ是消费-生产者模型的一个典型的代表,一端往消息队列中不断写入消息,而另一端则可以读取队列中 ...
- Nmap扫描教程之基础扫描详解
Nmap扫描教程之基础扫描详解 Nmap扫描基础扫描 当用户对Nmap工具了解后,即可使用该工具实施扫描.通过上一章的介绍,用户可知Nmap工具可以分别对主机.端口.版本.操作系统等实施扫描.但是,在 ...
- jmeter 基础功能详解
jmeter 基础功能详解 thread group:包含一组线程,每个线程独立地执行测试计划. sampler:采样器,有多种不同的sample实现,用来发起各种请求,如http请求,jdbc请求, ...
- hadoop基础-SequenceFile详解
hadoop基础-SequenceFile详解 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 一.SequenceFile简介 1>.什么是SequenceFile 序列文件 ...
- Cisco路由技术基础知识详解
第一部分 请写出568A的线序(接触网络第一天就应该会的,只要你掐过,想都能想出来) .网卡MAC地址长度是( )个二进制位(16进制与2进制的换算关系,只是换种方式问,不用你拿笔去算) A.12 ...
- RabbitMQ,Apache的ActiveMQ,阿里RocketMQ,Kafka,ZeroMQ,MetaMQ,Redis也可实现消息队列,RabbitMQ的应用场景以及基本原理介绍,RabbitMQ基础知识详解,RabbitMQ布曙
消息队列及常见消息队列介绍 2017-10-10 09:35操作系统/客户端/人脸识别 一.消息队列(MQ)概述 消息队列(Message Queue),是分布式系统中重要的组件,其通用的使用场景可以 ...
随机推荐
- nil gogo
https://blog.csdn.net/zhonggaorong/article/details/50233421 https://github.com/KevinHM/FunctionalRea ...
- 文本域内容在div中带换行显示
function ReplaceSeperator(mobiles) { var i; var result = ""; var c; for (i = 0; i < mob ...
- zabbix2.4.5安装zatree插件
一.关于zatree zatree 是来自国内58公司开发的监控软件zabbix的一个插件,主要功能是提供host group的树形展示和在item里指定关键字查询及数据排序. 项目地址:https: ...
- python 代码编写规范
一 代码编排1 缩进.4个空格的缩进(编辑器都可以完成此功能),不使用Tap,更不能混合使用Tap和空格.2 每行最大长度79,换行可以使用反斜杠,最好使用圆括号.换行点要在操作符的后边敲回车.3 类 ...
- WPF获得PNG图片外观Path数据
原文:WPF获得PNG图片外观Path数据 WPF开发界面的时候,用的最多的就是自定义控件模板,开发人员需要根据UI的设计,做出符合要求的自定义控件.但是在一些特殊情况下,UI的设计可能 ...
- 配置TL-WVR45G企业路由动态地址
1.打开浏览器,在地址栏输入http://192.168.1.1. 2.输入默认用户名密码:admin,登录. 3.[基本设置]->[lan设置]->[lan设置] ip地址改成:192 ...
- 洛谷—— P1926 小书童——刷题大军
https://www.luogu.org/problem/show?pid=1926#sub 题目背景 数学是火,点亮物理的灯:物理是灯,照亮化学的路:化学是路,通向生物的坑:生物是坑,埋葬学理的人 ...
- Oracle运行set autotrace on报错SP2-0618、SP2-0611
SQL> set autotrace on SP2-0618: 无法找到会话标识符.启用检查 PLUSTRACE 角色 SP2-0611: 启用 STATISTICS 报告时出错 原因: PLU ...
- OpenGl 坐标转换
1. OpenGL 渲染管线 OpenGL渲染管线分为两大部分,模型观測变换(ModelView Transformation)和投影变换(Projection Transformation). 做个 ...
- Track Active Item in Solution Explorer
Tools-->Options-->Projects and Solutions-->Track Active Item in Solution Explorer