【C语言】C语言中基础操作符详细讲解
接着上次的C语言基础知识梳理,让我们来简单了解一下C语言里的操作符
目录
整数的二进制表示形式
算术操作符
移位操作符
位操作符
赋值操作符
单目操作符
关系操作符
逻辑运算符
条件操作符-三目操作符
下标引用、函数调用、结构成员访问操作符
隐式类型转换(整型提升)
算术转换
总结
整数的二进制表示形式
- 针对负数
- 原码:直接根据数值写出的二进制序列就是原码 。
- 反码:原码 的符号位不变 ,其他位按位取反,就是反码。
- 补码:反码加1,就是补码。
- 针对正整数:原码反码补码相同
- 针对负数
算术操作符
- /
6/5为整除,结果是 1;
6.0/5.0结果为1.2,是double类型;
2.%
取模:算的是余数,取模的数必须是整数。
移位操作符
- 'a<<1':把a的二进制位向左移动一位(不可负号)
Int a=2;一个整体字符是4个字节,32个比特位
2. 右移
右移操作符使用的是算术右移。
算数右移:右边丢弃,左边补原符号位。(0正,1负)
逻辑右移:右边丢弃,左边补0
位操作符
- &按位与
- 按(二进制)位与(只有两个均为真,才为真)
- ‘|’ 按位或
- 二者有一为真,则为真
- ^按位异或
- &按位与
赋值操作符
- 直接赋值
- =
- 复合赋值
- +=
- a=a+100==a+=100
- -=
- /=
- >>=
- a=a>>3/a>>=3
- <<=
- %=
- |=
- %=
- +=
- 直接赋值
单目操作符
- !—逻辑取反
- If(!flag):如果flag为假,进入If语句
- - 负值
- & —取地址
- Sizeof—操作数的类型长度(以字节为单位)
- sizeof括号中放的表达式,是不参与运算的
- short:2字节;int:4字节。
- ~
- 对一个数的二进制位补码按位取反
- ++
- 前置++:先++再使用
- 后置++:先使用后++
- --
- *
- 解引用操作符-间接访问操作符
- 强制转换(类型)
- Int a =(int)3.14
- !—逻辑取反
关系操作符
- 比较两个字符串是否相等,不能使用等号来判断。
逻辑运算符
- 要构成逻辑表达式,需要使用逻辑运算符。
若a为真,则!a为假;若a为假,则!a为真
显然,逻辑运算的结果仍然是逻辑值
只要a、b至少一个为真,a||b就为真
2.逻辑非!
只有a、b均为真,a&&b的结果才为真
3.逻辑或||
C语言中有三种逻辑运算符
4.逻辑与&&
只有a、b均为真,a&&b的结果才为真
条件操作符-三目操作符
1.b=(a>5?1;-1);
a大于5吗?,如果大于,b等于1,如果不大于,b=-1
2.逗号表达式
下标引用、函数调用、结构成员访问操作符
- 下标引用
- Printf("%d\n",arr[4])[]—下标引用操作符
arr和 4是操作数
2.函数调用
1.Menu()];其中的()是函数调用操作符
3.结构成员访问操作符
- ‘.’点操作符
用“.”可以调出结构体内的成员。‘结构体名‘“.”'成员名'
2.‘->’箭头操作符
Pb->name代表pb指向的对象的name
隐式类型转换(整型提升)
- C的 整形算术运算总是至少以缺省整型类型的精度来进行
- 为了获得这个精度,表达式中的字符和短整型操作数 在使用之前被转换为普通整形,这种转换称为整型提升
- 整型提升 有符号的数补符号位 ,无符号的数补0
- 整型提升
算术转换
如果某个操作符的各个操作数属于不同的类型,那么除非其中一个操作数的转换为另一个操作数的类型(从低向高转换),否则操作就无法进行。下面的层次体系称为寻常算术转换。(从低到高转换)
总结
如果你读到了这里,非常感谢你能看完的文章,谢谢!!!!
如果你觉得你有些想法和我一样,想和我一起提升自己可以关注私信我,与我一起进步,一起共同努力!!!!!
【C语言】C语言中基础操作符详细讲解相关推荐
- Python的零基础超详细讲解(第五天)-Python的运算符
往期文章 Python的零基础超详细讲解(第一天)-Python简介以及下载_编程简单学的博客-CSDN博客 Python的零基础超详细讲解(第二天)-Python的基础语法1_编程简单学的博客-CS ...
- Python的零基础超详细讲解(第十三天)-Python的类与对象
基础篇往期文章如下: Python的零基础超详细讲解(第一天)-Python简介以及下载 Python的零基础超详细讲解(第二天)-Python的基础语法1 Python的零基础超详细讲解(第三天)- ...
- Python的零基础超详细讲解(第十二天)-Python函数及使用
基础篇往期文章: Python的零基础超详细讲解(第一天)-Python简介以及下载_编程简单学的博客-CSDN博客 Python的零基础超详细讲解(第二天)-Python的基础语法1_编程简单学的博 ...
- Python的零基础超详细讲解(第七天)-Python的数据的应用
往期文章 Python的零基础超详细讲解(第一天)-Python简介以及下载_编程简单学的博客-CSDN博客 Python的零基础超详细讲解(第二天)-Python的基础语法1_编程简单学的博客-CS ...
- python中ix用法_Python: pandas中ix的详细讲解
Python: pandas中ix的详细讲解 发布时间:2018-09-21 15:59, 浏览次数:2372 , 标签: Python pandas ix 在上一篇博客 中,我们已经仔细讲解了ilo ...
- vue中computed的详细讲解
vue中computed的详细讲解 1.定义 2.用法 3.computed的响应式依赖(缓存) 4.应用场景 1.定义 computed是vue的计算属性,是根据依赖关系进行缓存的计算,只有在它的相 ...
- python isdigit和isnumeric区别_isdigit()、isdecimal()和isnumeric python中区别【详细讲解】...
今天爱分享给大家带来isdigit().isdecimal()和isnumeric python中区别[详细讲解],希望能够帮助到大家. 1.函数介绍 isdecimal(...) | S.isdec ...
- isnumeric用法python_isdigit()、isdecimal()和isnumeric python中区别【详细讲解】
今天爱分享给大家带来isdigit().isdecimal()和isnumeric python中区别[详细讲解],希望能够帮助到大家. 1.函数介绍 isdecimal(...) | S.isdec ...
- 【C语言】数组的基本知识详细讲解(一维数组、二维数组、越界、存储.....
接着上次的操作符的详解,让我们来简单了解C语言里的数组. 目录 一维数组的创建和初始化 一维数组的使用 一维数组的存储 二维数组的创建与初始化 二维数组的存储 数组的越界 总结 一维数组的创建和初始化 ...
- c语言库快速幂函数,C语言 - 快速幂 - 迭代法+递归法 - 详细讲解
快速幂的作用: 解决 求 a ^ n 的问题 (n可以大于1e18), 如果用for循环的话,毫无疑问直接炸掉 -- 所以也就用了算法复杂度在 o(log n)的快速幂算法来解决此类问题. 快速幂递归 ...
最新文章
- 周志华:“深”为什么重要,以及还有什么深的网络
- matplotlib绘图蓝本
- SSH、SSL与HTTPS
- UNION 和UNION ALL 的区别
- OpenJDK 中脏话太多,开发者看不下去了
- YAF redis
- 蚂蚁金服技术专家:mPaaS是如何打造“最懂用户”的App的?
- 前端——“一看就会的”菜鸟教程网站首页制作!
- 构建高可用MYSQL主从复制集群
- XBEE-PRO-SX快速上手
- java面向对象编程思想的理解
- [584]python给生僻字注拼音(pypinyin库)
- inno setup QQ音乐安装包界面
- 通配符?,*,**区别
- 使用Tickeys寻找打字音效
- 罗森伯格参加国标GB50174北京、上海、广州贯标培训会
- IPGUARD苹果系统客户端安装与卸载
- 再分享一个自己写的向量和二维坐标变换的类
- shopify cli 安装记录
- Android的重力传感器(3轴加速度传感器)简单实例
热门文章
- Sketch设置透明背景
- 个人如何选择阿里云香港服务器?
- Element UI中的图标
- [ur_driver-2] process has died
- selenium自动化从0开始学习
- Longest Palindrome
- 计算机论文 大学保研,保研北大,两篇论文,三项专利,这是她的大学
- 激战2怎么选最新的服务器,选哪个服好?《激战2》高玩分析各服务器进驻人数...
- 使用 TestFlight 进行 iOS App 内测
- 赵小楼《天道》《遥远的救世主》深度解析(128)神即道,道法自然,如来