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语言必修秘籍】之操作符讲解《前章》 -> 正文阅读

[C++知识库]【C语言必修秘籍】之操作符讲解《前章》

目录

一、算术操作符

1.注意事项:

2.代码示例:

二、移位操作符

1.左移操作符<<

2.右移操作符>>

三、位操作符

1.按位与?

2.按位或???

3.按位异或

4.练习题

四、赋值操作符

1.赋值操作符

2.复合赋值符

五、单目操作符(只有一个操作数)

1. !(逻辑反操作)?

2. -(负值)

3. sizeof(操作数的类型长度,以字节为准)

4. ++(后置++,前置++)?

5. --(后置--,前置--)

6. ~ (对一个数的二级制按位取反)?

7. * (解引用操作符)、&(取地址)?

8. (类型)强制类型转换?

?六、结语


?

?

一、算术操作符

难易程度:?

+? ?-? ?*? ?/? ?%

1.注意事项:

? ?1?? 除了 % 操作符之外,其他的操作符可以用于整数和浮点数的计算。

? ?2?? 对于 / 操作符,如果两端的操作数都是整数,

? ? ? ? ?执行整数除法,只要有浮点数,执行的是浮点数的除法。

? ?3???% 操作符两端的操作数必须是整数,得到的值是整除之后的余数。

2.代码示例:

#include<stdio.h>

int main()
{
	int a = 3 / 5;//结果:0
	int b = 6 / 5;//结果:1

	//double类型的整数运算小数点后面补6个0
	double c = 6 / 5;//结果:1.000000
	//操作数两端至少有一个浮点数,得到的结果才会是浮点数
	double d = 6.0 / 5;//结果:1.200000

	int e = 7 % 3;//结果:1
	int f = 8 % 3;//结果:2
	printf("a=%d\n", a);
	printf("b=%d\n", b);
	printf("c=%lf\n", c);
	printf("d=%lf\n", d);
	printf("e=%d\n", e);
	printf("f=%d\n", f);
	return 0;
}

二、移位操作符

难易程度:??

<<? ? ?左移操作符? ??

>>? ? ?右移操作符

1.左移操作符<<

移位规则:

左边舍弃,右边补0.


2.右移操作符>>

移位规则:右移分两种

1?? 逻辑右移

? ? ? 右边舍弃,左边补0。

2?? 算数右移

? ? ? 右边舍弃,左边补原符号位。

在内存中存二进制序列的时候,最高位如果放的是0,表示它是正数;如果是1,表示它是负数

?

? 警告:对于移位操作符,不要移动负数位,这个是标准未定义的

例如:

int a = 2;
a >> -1;//error


三、位操作符

难易程度:???

按位与(&)

按位或(|)

按位异或(^)

注:操作数必须是整数

? ? ? ?比较的是操作数的二进制序列

1.按位与

2.按位或??

3.按位异或

4.练习题

交换两个int变量的值,不定义第三个变量。如int a = 3; int b = 5;交换后,int a = 5; int b = 3;

#include<stdio.h>

int main()
{
    int a = 3;
    int b = 5;
    //交换
    a = a ^ b;
    b = a ^ b;
    a = a ^ b;
    printf("a=%d b=%d\n", a, b);
    return 0;
}

代码分析:?


四、赋值操作符

难易程度:??

赋值操作符:=

复合赋值符:+=、-=、/=、%=、*=、<<=、>>=、&=、|=、^=

1.赋值操作符

赋值操作符可以让你在得到一个不满意的值的时候重新赋值。

int age = 32;
age = 18;//不满意就赋值
double num = 100.0;//使用赋值操作符赋值
//可以连续赋值
int a = 10;
int b = 20;
int c = 30;
a = b = c + 1;//连续赋值

?

? 注意 :连续赋值的方法不是很清晰,而且也不便于调试,所以不推荐。

2.复合赋值符

是将两个运算符拼凑在一起

int a = 10;
a = a + 10;
a += 10;//其他的复合赋值符用法相同
a >>= 3

??

? ?注意:=是赋值的意思

? ? ? ? ? ? ? ==是判断相等的意思?

五、单目操作符(只有一个操作数)

难易程度:??

!、 -、 +、 &、 ~、 --、 ++、 *、 (类型)、 sizeof

1. !(逻辑反操作)?

#include<stdio.h>

int main()
{
    int a = 1;
	//a为真打印hehe
	if (a)
	{
		printf("hehe\n");
	}
	//a为假打印haha
	if (!a)
	{
		printf("haha\n");
	}
    return 0;
}

2. -(负值)

#include<stdio.h>

int main()
{
    int a = 1;
	a = -a;//让a变成负数
	printf("%d\n", a);//输出结果:-1
	return 0;
}

3. sizeof(操作数的类型长度,以字节为准)

#include<stdio.h>

{
    int a = 10;
    char arr[10]={0};
    //计算a所占空间的大小,单位是字节
   
    //对于变量名的计算,可以省略括号
    //如果是数据类型,就不可以省略括号
    printf("%d\n",sizeof a);//结果:4
    printf("%d\n",sizeof(int));//结果:4

    //sizeof也可以用来计算数组的大小
    printf("%d\n",sizeof(arr));//结果:10
    return 0;
}

4. ++(后置++,前置++)?

#include<stdio.h>

int main()
{
    int a = 10;
    int b = a++;//后置++,先使用再++
    //先把10赋给b,a再自加1变成11
    printf("b=%d\n", b);//结果:10
    printf("a=%d\n", a);//结果:11
    return 0;
}
#include<stdio.h>

int main()
{
    int a = 10;
    int b = ++a;//前置++,先++再使用
    //a先自加1,变成11再赋给b
    printf("%d\n", a);//结果:11
    printf("%d\n", b);//结果:11
    return 0;
}

5. --(后置--,前置--)

#include<stdio.h>

int main()
{
    int a = 10;
    int b = a--;//后置--,先使用,后--
    //a先赋给b,再自减1
    printf("a=%d\n", a);//结果:9
    printf("b=%d\n", b);//结果:10

    return 0;
}
#include<stdio.h>

int main()
{
    int a = 10;
    int b = --a;//前置--,先--,后使用
    //a先自减1,再赋给b
    printf("%d\n", a);//结果:9
    printf("%d\n", b);//结果:9

    return 0;

6. ~ (对一个数的二级制按位取反)?

#include<stdio.h>

int main()
{
    int a = -1;
    //~按为取反
    //把补码按位取反包括符号位
    //11111111111111111111111111111111
    //00000000000000000000000000000000
    int b = ~a;
    printf("%d\n", b);
    return 0;//结果0
}

7. * (解引用操作符)、&(取地址)?

?

?注意:当 & 只有一个操作数的时候,是取地址操作符;有两个操作数的时候,是按位与操作符。

8. (类型)强制类型转换?

#include<stdio.h>

int main()
{
    int a = 3.14;//类型不统一
    //从double转化到int可能会丢失数据
    //可以用强制类型转换来解决
    int a = (int)3.14;//把3.14强制转换成int类型的
    return 0;
}

?注意:()是阔数据类型的,而不是阔数值。?

?六、结语

  C++知识库 最新文章
【C++】友元、嵌套类、异常、RTTI、类型转换
通讯录的思路与实现(C语言)
C++PrimerPlus 第七章 函数-C++的编程模块(
Problem C: 算法9-9~9-12:平衡二叉树的基本
MSVC C++ UTF-8编程
C++进阶 多态原理
简单string类c++实现
我的年度总结
【C语言】以深厚地基筑伟岸高楼-基础篇(六
c语言常见错误合集
上一篇文章      下一篇文章      查看所有文章
加:2022-04-04 11:50:13  更:2022-04-04 11:56:09 
 
开发: 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 0:22:04-

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