C语言操作符
来源:互联网 发布:淘宝网中年女羽绒服 编辑:程序博客网 时间:2024/06/07 04:47
C语言操作符简单应用
操作符分类
算术操作符 移位操作符 位操作符 复制操作符 单目操作符 关系操作符 逻辑操作符 条件操作符 逗号表达式 下标引用、函数调用和结构成员
算术操作符
即+、-、*、/、%。
不要上来就讲so easy!还是有几点需要注意的:
1.
%这个操作符,小学课本里面没有,其结果表示前数除以后数的余数。要求取余,自然和小数点没什么关系,所以%前后数,及其结果都是整型。
2.
对于/而言,除数与被除数都是整数,其结果必然是整数,两数中只要有浮点数参与,结果就是浮点型。
3.
移位操作符
<<…… 左移操作符
二进制补码前提下:左边抛弃,右边补0
例
int num=-1;
num补码:
11111111 11111111 11111111(32位os)
num<<1 补码:
11111111 11111111 11111110
该过程中num依然是-1,自身的值不会改变。
>>…… 右移操作符
1.算术移位
左边用原该值来的符号位填充,右边丢弃(编译器都是采用该移位)
int a=-20;
11111111 11111111 11111111 11101110
a>>1;
11111111 11111111 11111111 11110111
2.逻辑移位
右边抛弃,左边补0。
a>>1;
01111111 11111111 11111111 11110111
位操作符
& 按位与
| 按位或
^ 按位异或
例
不能创建临时变量(第三个变量),实现两个数的交换。
#include<stdio.h>#include<stdlib.h>int main(){ int a=5;//101 int b=3;//011 printf("a=%d b=%d\n",a,b); a=a^b;//110 b=a^b;//101 a=a^b;//011 printf("a=%d b=%d\n",a,b); system("pause"); return 0;}
赋值操作符
注意
区分赋值操作符=和判断运算符==。
复合操作符
+=
-=
*=
/=
%=
=
<<=
&=
|=
^=
例
int x=10;
x+=10; //x=x+10;
单目操作符
!
-
+
&
sizeof
~
- -
++
*
注意
sizeof()是单目操作符而不是函数,其作用是求变量(所占空间的大小)。
关系操作符
、>=、<、<=、!=、==
逻辑操作符
&&||
例
100&&3212——>1
(!0)&&(!0)——>1
(!0)&&(0)——>0
8992||2612——>1
(!0)||(!0)——>1
(0)||(!0)——>1
条件操作符
exp1?exp2:exp3
例
y=x>8? 9:-9;
逗号表达式
就是逗号隔开的好几个式子。逗号表达式自左向右依次执行,整个表达式的结果是最后一个表达式的结果。
- c语言操作符
- C语言#,##操作符
- C语言操作符
- 【C语言】操作符
- 【C语言】操作符
- c语言操作符
- c语言操作符
- C语言操作符
- c语言操作符
- C语言操作符
- c语言操作符
- C语言操作符
- c语言操作符
- c语言操作符
- C语言操作符
- C语言操作符
- C语言操作符
- c语言操作符
- jdk8新特性(附jdk5/jdk6/jdk7新特性)
- JavaDVD管理系统
- 程序员如何入门 Python 爬虫
- 《剑指offer》刷题笔记(时间空间效率的平衡):第一个只出现一次的字符
- hdu-2896-病毒侵袭(AC自动机,两种实现)
- C语言操作符
- numpy: np.ndarray.flatten
- 1.1:文件过滤
- xshell连接centos经常掉线的问题
- 通过placeholder实现前向传播算法
- Eclipse配置 之 修改JSP默认编码
- 面试之JavaWeb篇(十三)
- 解决:Navicat远程连接mysql失败
- ZoomIt 屏幕放大 缩小 屏幕画笔 演示 手写笔迹 倒计时 秒变白板 pointofix