IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> C++知识库 -> 操作符详解 -> 正文阅读

[C++知识库]操作符详解

算术操作符

+,-,*,/,%
主要是注意 % 运算符
该运算符只能用于整数,得到的是余数。其他的都比较简单

🥇移位操作符

移位操作符是移动的二进制位,并且只能是整数

  • 右移操作符==>>==
    在这里我只讲一种,那就是算术移位
    即右边的抛弃,左边补充符号位
    例如;
	char a=5;
	char b;
	b=a>>2;
	a二进制00000101
	右移200000001得到b
	b=1;
  • 左移操作符==<<==
    向左移动几位,那么左边就抛弃几位,后面就添加几个0。
    例如:
	char a=2;
	char b;
	b=a<<2;
	a二进制00000010
	左移200001000
	即b的二进制就是00001000;
	即b=8;

🥈位操作符

也是对二进制进行的操作。这是双目操作符
&,|,^

    • &按位与,有一个位为0就是0
    • |按位或,有一个位为1就是1
    • ^按位异或,相同为0,相异为1
int main()
{
	int a = 1;
	01
	int b = 2;
	10
	a&b 00——》0
	a|b 11——》3
	a^b 11——》3
	printf("%d\n%d\n%d\n", a&b,a|b,a^b);
	return 0;
}

看结果:
在这里插入图片描述

赋值操作符

=,+=,-=,*=,/=,%=,>>=,<<=,&=,|=,^=
太简单不要说

🥉单目操作符

单目操作符:只有一个操作数

  • (+ -) 就是我们平时的正负号

  • ~ 它表示的意思是对一个数的二进制按位取反 ,也就是1变0,0变1。

#include <stdio.h>
int main()
{
    int a=0;
    int b=~a;
    printf("%d",b);
    return 0;
}

输出结果是-1。

  • 逻辑非

它的作用把真变假, 把假变真

#include <stdio.h>
int main()
{
	int a = 1;
	if (!a)
		printf("%d", a);
	return 0;
}

此处并不会有什么会打印出来
因为假就不执行if条件

  • ++:包括后置++(先使用,后++)和前置++(先++,后使用)。
  • - - 同理

如:

#include <stdio.h>
int main()
{
    int a=10,c=10;
    int b=a++,d=++c;
    printf("a=%d,b=%d,c=%d,d=%d",a,b,c,d);
    return 0;
}

输出结果为:a=11,b=10,c=11,d=11.

  • sizeof 操作符
    可以算类型的大小,变量的大小。返回值以字节为单位
  • () 表示强制类型转换

如:int a=(int)3.14;从“double”转换到“int”,可能丢失数据。
但是(int)强制转换就不会出现警告。

  • & 取地址操作符

关系操作符

>=,>,<=,<,==
太简单了

逻辑操作符

  • && 逻辑与
    只要左边的表达式有一个为,那么后面的表达式就不用进行运算了
  • || 逻辑或
    只要右边的表达式有一个为,那么后面的表达式就不用进行运算了

条件操作符

条件操作符:exp1?exp2:exp3 它的意思是:表达式1?表达式2:表达式3

它是这样运行的:

如果表达式1成立,表达式2执行;

如果表达式1不成立,表达式3执行。

#include <stdio.h>
int main()
{
    int a=10,b=20;
    int MAX=(a>b?a:b);
    printf("MAX=%d",MAX);
    return 0;
}

此输出的结果是MAX=20.

逗号表达式

逗号表达式:(exp1,exp2,等等)

整个逗号表达式的结果为最后一个表达式的执行结果,不管前面的执行结果是对是错。

看下面的代码:

#include <stdio.h>
int main()
{
	int a = 10;
	int b = 20;
	int c = 30;
	int m = (a < b, a++, b > c, c++, b + c + a);
	printf("%d\n", m);
	return 0;
}

它的运行结果为:

对这个进行分析(a < b, a++, b > c, c++, b + c + a)

首先a<b成立 继续a++,a变成11,b>c不成立,不用管继续,c++,c变成31,最后执行b+c+a,结果为62,即为m的结果.

下标引用、函数调用和结构成员

  • []下标引用操作符
  • ()函数调用操作符

结构体访问操作符
. 结构体.成员
->结构体指针成员

上述这些在以后的指针,结构体中会经常用到,暂时不举例子

增加的部分

常见关键字(以下讲解的只是部分)

register signed unsigned typedef

register int a;表示建议把a定义成寄存器变量,因为寄存器的运行速度比内存快。

signed表示有符号数,int 其实是signed int 只不过signed省略了。

unsigned表示无符号数,只有正数,其类型范围也将变大,只是正数范围。

typedef表示类型重定义,如:

#include <stdio.h>
int main()
{
    typedef unsigned int u_int;
    u_int a=10;
    printf("%d",a);
    return 0;
}

其输出的结果是10.

这里只是把unsigned int 换了一个叫u_int 的名字.

?

  C++知识库 最新文章
【C++】友元、嵌套类、异常、RTTI、类型转换
通讯录的思路与实现(C语言)
C++PrimerPlus 第七章 函数-C++的编程模块(
Problem C: 算法9-9~9-12:平衡二叉树的基本
MSVC C++ UTF-8编程
C++进阶 多态原理
简单string类c++实现
我的年度总结
【C语言】以深厚地基筑伟岸高楼-基础篇(六
c语言常见错误合集
上一篇文章      下一篇文章      查看所有文章
加:2022-03-12 17:14:26  更:2022-03-12 17:15:24 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/24 4:23:54-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码