C语言讲义——运算符(operator)
运算符(operator)
- 算数运算符 7种
 - 关系运算符 6种
 - 逻辑运算符 3种
 - 位运算符 6种
 - 赋值运算符 11种
 - 共5类33种
 
算术运算符
- 加 +
 - 减 -
 - 乘 *
 - 除 /
 - 取余 % (仅限于整数类型)
 
// numerator 被除数
// denominator 除数
// quotient 商
// remainder 余数
int n = 20, d=3;
int q = n / d;
int r = n % d;
printf("%d÷%d商为%d,余数%d",n,d,q,r);
应用:%2可以用于奇偶数的判断:
int main(int argc, char** argv) {
	for(int i = 0; i<100; i++) {
		if(i%2 == 1) {
			printf("%d是奇数\n", i);
		} else {
			printf("%d是偶数\n", i);
		}
	}
	return 0;
}
自增运算符 ++
i++是先用i进行操作,再对i+1;
++i是先对i+1,再用i进行操作;

关系运算符

左值==右值:相等的时候,结果是整数1;不相等的时候,结果是整数0。
	int a = 1;
	printf("1 == a 结果:%d \n", 1 == a); // 相等
	printf("2 == a 结果:%d \n", 2 == a); // 不相等
注意:C语言中,比较“某变量是否等于某值”时,不要使用a == 1的形式,建议使用1 == a的形式。
因为a == 1很容易写成a = 1,这是一个赋值语句(无论a之前等于多少,都会变成1),赋值会成功,返回结果永远是整数1,即会被误判为相等,同时改变了a的值。
而如果1 == a如果写成1=a,不符合语法,编译器会报错。这样可以避免代码出错而自己还不知道。
逻辑运算符
| 运算符 | 中 | 英 | 说明 | 
|---|---|---|---|
| && | 与 | AND | 同真为真 | 
| || | 或 | OR | 一荣俱荣 | 
| ! | 非 | NOT | 
短路逻辑运算
以&&为例:
两个操作数都为true时,结果才为true;
第一个为false时,结果就必为false,这时不会再判断第二个操作。
int a = 1;
if ( (a < 0)  &&  (a++ < 1) )
{
    // Do Nothing
}
结果a没有自增,还是1
位运算符
- & 位与
 - | 位或
 - ^ 亦或
 

- ~ 补码取反
 - >> 右移
 - <<	左移
对于int a=3,扩大8倍最快的方法是a<<3,即左移3位,相当于乘以23,计算机做位移的操作要被乘除快得多,比加法都快。 
| 扩大2倍 | a<<1 | 缩小2倍 | a>>1 | 
|---|---|---|---|
| 扩大4倍 | a<<2 | 缩小4倍 | a>>2 | 
| 扩大8倍 | a<<3 | 缩小8倍 | a>>3 | 
| 扩大16倍 | a<<4 | 缩小16倍 | a>>4 | 
赋值运算符
- =
 - +=、-=、*=、/=、%=
 - &=、^=、|=、<<=、>>=
 
C语言讲义——运算符(operator)的更多相关文章
- C语言位运算符:与、或、异或、取反,左移和右移
		
C语言位运算符:与.或.异或.取反.左移和右移 个位操作运算符.这些运算符只能用于整型操作数,即只能用于带符号或无符号的char,short,int与long类型. ,则该位的结果值为1,否则为0 | ...
 - C语言预处理运算符
		
转自C语言预处理运算符 预处理还需要运算符?有没有搞错? ^_^, 没有搞错,预处理是有运算符,而且还不止一个: #(单井号) -- 字符串化运算符. ##(双井号 )-- 连接运算符 #@ ...
 - C语言位运算符:与、或、异或、取反、左移和右移
		
语言位运算符:与.或.异或.取反.左移和右移 位运算是指按二进制进行的运算.在系统软件中,常常需要处理二进制位的问题.C语言提供了6个位操作运算符.这些运算符只能用于整型操作数,即只能用于带符号或无符 ...
 - go语言的运算符
		
什么是运算符:运算符用于在程序运行时执行数学或逻辑运算 go语言的运算符如下: 算术运算符 关系运算符 逻辑运算符 位运算符 赋值运算符 其他运算符 一,算数运算符 运算符 描述 实例 + 相加 A ...
 - C语言的运算符的优先级与结合性+ASCII表
		
[0]README 0.1) 内容来源于 C程序设计语言, 旨在整理出C语言的运算符的优先级与结合性, 如下图所示(哥子 记了大半年都没有记住,也是醉了,每次都要去翻): Alert)以下内容转自:h ...
 - 3014C语言_运算符
		
第四章 运算符 4.1 分类 C语言的运算符范围很广,可分为以下几类: 1.算术运算符:用于各类数值运算.包括加(+).减(-).乘(*).除(/).求余(%).自增(++).自减(--)共七种. 2 ...
 - go语言基本运算符
		
go语言基本运算符 1.算术运算符 以下假设A=10,B=20: 2.关系运算符 以下假设A=10,B=20: 3.逻辑运算符 以下假设A=true,B=false: 4.位运算符 十进制转二进制: ...
 - Swift语言精要 - Operator(运算符重载)
		
运算符重载 Swift的这一语言特性或许应该启发于C++ class Vector2D { var x : Float = 0.0 var y : Float = 0.0 init (x : Floa ...
 - Swift学习(一):自定义运算符 operator
		
自定义运算符仅能包含这些字符: / = - + * % < >!& | ^.~ 运算符位置: 前置运算符 prefix 中间运算符 infix 后置运算符 postfix 运算符其 ...
 
随机推荐
- AtCoder Grand Contest 013D: Piling Up 题解
			
题意简化: [luogu] Piling Up 一开始有n个颜色为黑白的球,但不知道黑白色分别有多少,m次操作,每次先拿出一个球,再放入黑白球各一个,再拿出一个球,最后拿出的球按顺序排列会形成一个颜色 ...
 - Python的Opencv库怎么装
			
原文章写于时间2019.4 当时鼓捣Opencv库弄了好长时间,前前后后弄了五天,找了好多帖子不知道删除重装了多少次,现在把我试出来正确的方法给大家分享一下. 1.Pycharm 我用的是win10系 ...
 - 浅谈MVP
			
MVP是什么 MVP:Model-View-PresenterModel:表示数据提供者:View:表示数据展示:Presenter:是M与V沟通的桥梁. MVP工作方式 UI:告知Presenter ...
 - Ideas and Tricks
			
1.树上拓扑排序计数 结论$\dfrac{n!}{\prod\limits_{i=1}^n size_i}$ 对于节点$i$,其子树随意排序的结果是$size[i]!$ 但$i$需要排在第一位,只有$ ...
 - 关于保存批量数据进入mysql
			
提出的要求: 生成13位纯数字的卡号与8位纯数字的卡密,要求卡号与卡密都必须全表唯一,然后保存到mysql. 思路: 1.首先mysql中将这两个字段设置唯一索引,保证这两个字段的值在该表中是唯一存在 ...
 - Docker系列01—Docker 基础入门
			
一.初识Docker和容器 1.1 什么是docker 容纳其他物品的工具,可以部分或完全封闭,被用于容纳.存储.运输物品.物体可以被放置在容器中,而容器则可以保护内容物. 容器? 容器就是在隔离的环 ...
 - 对List对象里的其中两个属性配套去重
			
List<User> disList= list.stream().collect(Collectors.collectingAndThen(Collectors.toCollection ...
 - 第05组 Alpha冲刺 (4/6)(组长)
			
.th1 { font-family: 黑体; font-size: 25px; color: rgba(0, 0, 255, 1) } #ka { margin-top: 50px } .aaa11 ...
 - 深入探讨HBASE
			
HBASE基础 1. HBase简介HBase是一个高可靠.高性能.面向列的,主要用于海量结构化和半结构化数据存储的分布式key-value存储系统. 它基于Google Bigtable开源实现,但 ...
 - ubutun 服务器中文设置
			
在连接到服务器时,我们看不到图形界面,按照常规的安装搜狗输入法行不通,查阅相关的资料找到一篇可以解决的 sudo apt-get update 如果出现 E: 无法下载 404 Not Found I ...