c语言中的操作符和表达式
来源:互联网 发布:同花顺云计算下载 编辑:程序博客网 时间:2024/05/16 13:38
经过近一段时间的学习,学到了操作符和表达式,先将学到的整理如下:
一.算数操作符:+、-、*、/、%
这个没什么好说的,但要注意 /号的两侧只要有一个浮点数就是浮点类型,定义变量的时候要注意;
%(取余)的两侧必须全是整数。
二.移位操作符:左移<< 右移>>
要想理解右移的概念,要先知道计算机中数据的存储方式,要先知道原码、补码、反码的概念;
在计算机中数据是按二进制存储的,但存储的并不是原码,而是补码,以-1为例(在32位计算机中)
-1的原码为10000000 00000000 00000000 00000001,第一位表示符号位,1为负,0为正。
-1的反码为111111111 111111111 111111111 111111110,正数的反码是其本身,负数的反码在其原码的基础上, 符号位不变,其余各个位取反。
-1的补码为111111111 111111111 111111111 111111111,正数的补码就是其本身,负数的补码是在其原码的基础上, 符号位不变, 其余各位取反, 最后+1. (即在反码的基础上+1) 在计算机中,是以补码的形式存储的。
无论反码,补码符号位都不会变,同样在左移右移的操作中。符号位也不会改变,只是对补码进行操作。
左移:
移位规则:左边抛弃,右边补零;以int num=10为例
在移位操作中,num的值不会改变下面以一个程序来证明:代码如下
#define _CRT_SECURE_NO_WARNINGS
#include<stdio.h>
int main()
{
int num = 10;
printf("%d\n",num << 1);
printf("%d\n", num );
return 0;
}
运行结果如下:num的值并未改变
:
右移:
移位规则:首先右移运算分两种
1.逻辑移位:
左边用0填充,右边丢弃
2.算术移位
左边用该值的符号位填充,右边丢弃
三:位操作符:操作数必须是整数,这些操作符也是用补码来计算的
& //按位与:两两相对,只要有一个0,这个位就为0,全为1才是1
| //按位或:只要有一个1,就为1;
^ //按位异或:相同为0,相异为1
四:赋值运算符,即"="
他可以让你得到之前不满意的值,另外还有复合赋值符,例如:
a+=b;意思为 a=a+b;其他类似的还有
-=;*=;/=;%=;>>=;<<=;&=;|=;^=
五:单目操作符
!逻辑反
- 负值
+ 正值
& 取地址
sizeof 操作数的类型长度(以字节为单位)
~ 对一个数的二进制按位取反
-- 前置、后置--
++ 前置、后置++
* 间接访问操作符(解引用操作符)
(类型) 强制类型转换
注意:sizeof 是操作符 不是函数
前置--和后置--是不一样的,前置是 先运算再赋值,后置是先赋值再运算;下面以一个程序来说明
代码:
#define _CRT_SECURE_NO_WARNINGS
#include<stdio.h>
int main()
{
int a = 10;
int b = 20;
printf("%d\n", --a);
printf("%d\n", b--);
return 0;
}
结果为:
强制类型转换写法为 变量=(类型)变量
六:关系操作符
>
>=
<
<=
!= 用于测试相等
== 用于测试相等
七:逻辑操作符
&&:逻辑与
||: 逻辑或
区分逻辑与和按位与
区分逻辑或和按位或
1&2----->0
1&&2---->1
1|2----->3
1||2---->1
八:条件操作符 exp1?exp2:exp3
类似于 if(exp1)
{
exp2
}
else
{
exp3
}
九:逗号表达式 exp1, exp2, exp3,…expN
逗号表达式,就是用逗号隔开的多个表达式。
逗号表达式,从左向右依次执行。整个表达式的结果是最后一个表达式的结果
十:下标引用操作符[]
例如 int arr[10]={0};
arr[1]=10;
操作数为 arr和1.
十一:函数调用操作符()
函数调用操作符
接受一个或者多个操作数:第一个操作数是函数名,剩余的操作数就是传递给函数
的参数
注意:我们不能写出依赖求值顺序的表达式。这样的表达式是不可移植的。尽量避免。
- c语言中的操作符和表达式
- C语言中的操作符和表达式
- c语言中的操作符和表达式求值
- C语言的表达式和操作符
- 0602 c语言操作符和表达式
- C语言 操作符和表达式
- c语言操作符和表达式
- C语言中的运算符和表达式
- C语言学习之操作符和表达式
- C语言注意事项——数据类型、操作符和表达式
- C语言之赋值操作符和表达式
- C语言_初成长_操作符和表达式
- #C语言.操作符和表达式简单介绍
- c语言中的一些运算符和表达式
- C语言中的逗号运算符和逗号表达式
- C语言中的算术运算符和算术表达式
- c语言中的操作符
- C语言中的操作符
- Goahead的介绍与安装
- Vbox和VMware共存问题解决
- 城里人看呆!没想到现在景区都这么会玩了
- StackOverflow 推出程序员身价计算器,看看自己值多少钱?
- 趣图:连个图标都有对象了,我还找不到对象
- c语言中的操作符和表达式
- 清北学堂 2017-10-01
- 换行总结
- BZOJ 3747 Kinoman看电影
- 各种数学符号的英文
- NYOJ-彩排(思路问题)(位运算)(卡内存)
- SSL中,公钥,私钥,证书的后缀名
- 运动框架改进之完美运动框架 -纯js
- ubuntu 安装chrome