运算符(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)的更多相关文章

  1. C语言位运算符:与、或、异或、取反,左移和右移

    C语言位运算符:与.或.异或.取反.左移和右移 个位操作运算符.这些运算符只能用于整型操作数,即只能用于带符号或无符号的char,short,int与long类型. ,则该位的结果值为1,否则为0 | ...

  2. C语言预处理运算符

    转自C语言预处理运算符 预处理还需要运算符?有没有搞错? ^_^, 没有搞错,预处理是有运算符,而且还不止一个: #(单井号)    -- 字符串化运算符. ##(双井号 )-- 连接运算符 #@   ...

  3. C语言位运算符:与、或、异或、取反、左移和右移

    语言位运算符:与.或.异或.取反.左移和右移 位运算是指按二进制进行的运算.在系统软件中,常常需要处理二进制位的问题.C语言提供了6个位操作运算符.这些运算符只能用于整型操作数,即只能用于带符号或无符 ...

  4. go语言的运算符

    什么是运算符:运算符用于在程序运行时执行数学或逻辑运算 go语言的运算符如下: 算术运算符 关系运算符 逻辑运算符 位运算符 赋值运算符 其他运算符 一,算数运算符 运算符 描述 实例 + 相加 A ...

  5. C语言的运算符的优先级与结合性+ASCII表

    [0]README 0.1) 内容来源于 C程序设计语言, 旨在整理出C语言的运算符的优先级与结合性, 如下图所示(哥子 记了大半年都没有记住,也是醉了,每次都要去翻): Alert)以下内容转自:h ...

  6. 3014C语言_运算符

    第四章 运算符 4.1 分类 C语言的运算符范围很广,可分为以下几类: 1.算术运算符:用于各类数值运算.包括加(+).减(-).乘(*).除(/).求余(%).自增(++).自减(--)共七种. 2 ...

  7. go语言基本运算符

    go语言基本运算符 1.算术运算符 以下假设A=10,B=20: 2.关系运算符 以下假设A=10,B=20: 3.逻辑运算符 以下假设A=true,B=false: 4.位运算符 十进制转二进制: ...

  8. Swift语言精要 - Operator(运算符重载)

    运算符重载 Swift的这一语言特性或许应该启发于C++ class Vector2D { var x : Float = 0.0 var y : Float = 0.0 init (x : Floa ...

  9. Swift学习(一):自定义运算符 operator

    自定义运算符仅能包含这些字符: / = - + * % < >!& | ^.~ 运算符位置: 前置运算符 prefix 中间运算符 infix 后置运算符 postfix 运算符其 ...

随机推荐

  1. AtCoder Grand Contest 013D: Piling Up 题解

    题意简化: [luogu] Piling Up 一开始有n个颜色为黑白的球,但不知道黑白色分别有多少,m次操作,每次先拿出一个球,再放入黑白球各一个,再拿出一个球,最后拿出的球按顺序排列会形成一个颜色 ...

  2. Python的Opencv库怎么装

    原文章写于时间2019.4 当时鼓捣Opencv库弄了好长时间,前前后后弄了五天,找了好多帖子不知道删除重装了多少次,现在把我试出来正确的方法给大家分享一下. 1.Pycharm 我用的是win10系 ...

  3. 浅谈MVP

    MVP是什么 MVP:Model-View-PresenterModel:表示数据提供者:View:表示数据展示:Presenter:是M与V沟通的桥梁. MVP工作方式 UI:告知Presenter ...

  4. Ideas and Tricks

    1.树上拓扑排序计数 结论$\dfrac{n!}{\prod\limits_{i=1}^n size_i}$ 对于节点$i$,其子树随意排序的结果是$size[i]!$ 但$i$需要排在第一位,只有$ ...

  5. 关于保存批量数据进入mysql

    提出的要求: 生成13位纯数字的卡号与8位纯数字的卡密,要求卡号与卡密都必须全表唯一,然后保存到mysql. 思路: 1.首先mysql中将这两个字段设置唯一索引,保证这两个字段的值在该表中是唯一存在 ...

  6. Docker系列01—Docker 基础入门

    一.初识Docker和容器 1.1 什么是docker 容纳其他物品的工具,可以部分或完全封闭,被用于容纳.存储.运输物品.物体可以被放置在容器中,而容器则可以保护内容物. 容器? 容器就是在隔离的环 ...

  7. 对List对象里的其中两个属性配套去重

    List<User> disList= list.stream().collect(Collectors.collectingAndThen(Collectors.toCollection ...

  8. 第05组 Alpha冲刺 (4/6)(组长)

    .th1 { font-family: 黑体; font-size: 25px; color: rgba(0, 0, 255, 1) } #ka { margin-top: 50px } .aaa11 ...

  9. 深入探讨HBASE

    HBASE基础 1. HBase简介HBase是一个高可靠.高性能.面向列的,主要用于海量结构化和半结构化数据存储的分布式key-value存储系统. 它基于Google Bigtable开源实现,但 ...

  10. ubutun 服务器中文设置

    在连接到服务器时,我们看不到图形界面,按照常规的安装搜狗输入法行不通,查阅相关的资料找到一篇可以解决的 sudo apt-get update 如果出现 E: 无法下载 404 Not Found I ...