1-5 C语言操作符

C语言提供了非常丰富的操作符,使得C语言使用起来非常的方便

 算数操作符:

  加          减    乘      除     取模

【+        -            *             /            %】

:除号的两端都是整数的时候执行的是整数的除法,如果两端只要有一个浮点数,那么此时执行的就是浮点数的除法。

#define  _CRT_SECURE_NO_WARNINGS
#include "stdio.h"
#include "stdlib.h"
#include "math.h"
#include <string.h>int main(void) {int a = 7 / 2;int b = 7 % 2;float c = 7 / 2.0;printf("%d\n", a);printf("%d\n", b);printf("%f\n", c);// 获取小数点后面1位printf("%.1f\n", c);return 0;
}

移位操作符:

[  <<  左移操作符           >> 右移操作符 ]

C语言中的左移操作符主要是针对二进制进行操作,用于嵌入式系统尤其是51单片机中,配置单片机寄存器。

按位左移:二进制数向左边移动,然后右边补0.

x << n 把x中的每一位向左平移N为,右边空位补0,左边移出的数丢弃,写法a = a << 2, b = a << 3, c = a << b;

按位右移:分为算术右移和逻辑右移,逻辑右移,向右边平移,移动的舍去,左边补0

x>>n 把x中的每一位向右平移n位,当x为有符号数时,左边空位补符号上的值,称为算术移位;当x为无符号数时,左边空位补0,称为逻辑移位;右边移出的数丢弃。

写法:a=a >> 2;b=a >> 3;c=a >> b;

算术右移:用于有符号的数

逻辑右移 :用于无符号的数


位操作符:

&          ^                 |

按位与&:全真为真,有假为假

1 & 1 = 1 , 1 & 0 = 0, 0 & 0 = 0

|       

按位或 |: 有真为真,全假为假

1 | 0 = 1, 0 | 1 = 1, 0 | 0 = 0

按位异或 ^       相同为0,不同为1   

1 就是 0 , 0 就是 1.


赋值操作符:

【=               +=          -=          /=       *=         ^=       | =          >>=         <<=】

#define  _CRT_SECURE_NO_WARNINGS
#include "stdio.h"
#include "stdlib.h"
#include "math.h"
#include <string.h>int main(void) {// 创建变量的同时给他一个值叫做变量的初始化int  a = 0;// 赋值a = 20;// 也是赋值 a += 3; / a -= 3, a *= 3. a = a + 3; return 0;
}

单目运算符

在C语言中非0表示假 0 表示真 ! 的作用数把假的变成真,真的变成假

#define  _CRT_SECURE_NO_WARNINGS
#include "stdio.h"
#include "stdlib.h"
#include "math.h"
#include <string.h>int main(void) {int flag = 0;if (!flag) {printf("hehe\n");}return 0;
}

#define  _CRT_SECURE_NO_WARNINGS
#include "stdio.h"
#include "stdlib.h"
#include "math.h"
#include <string.h>int main(void) {int a = -10;int b = -a;printf("%d\n", b);return 0;
}

sizeof ()是一个操作符,而且是一个单目操作符

#define  _CRT_SECURE_NO_WARNINGS
#include "stdio.h"
#include "stdlib.h"
#include "math.h"
#include <string.h>int main(void) {int a = 10;// 计算A所占的字节大小printf("%d\n", sizeof(a));printf("%d\n", sizeof(int));printf("%d\n", sizeof a);return 0;
}

#define  _CRT_SECURE_NO_WARNINGS
#include "stdio.h"
#include "stdlib.h"
#include "math.h"
#include <string.h>int main(void) {int arr[10] = { 0 };// 这里计算的是整个数组的大小,单位是字节printf("%d\n", sizeof(arr));printf("%d\n", sizeof(arr[0]));// 获取数组的长度,总大小除以一个字节的大小printf("%d\n", sizeof(arr) / sizeof(arr[0]));return 0;
}

【~ 对一个数的二进制位进行取反:1就是0    ,0就是1】

前置 -- 和 后置 -- ,前置 ++ 和后置 ++

先使用后++

【先 ++ 后使用】

同理 -- 也是一样的原理


初识C语言中的类型转换:

关系操作符:

[ >                   <          =           ==         !=          >=            <= ]

在C语言中 = 表示赋值的意思,将等号左边的值赋值给  = 右边的变量,而 == 号找C语言中表示比较的意思,用于比较== 两边的值是否相等。

【逻辑与&& -------- 并且 , 逻辑或 ---------或者】

逻辑与 和 逻辑或操作符 && 两边的值都是true的时候成立,|| 逻辑两边的值有一个值是true就成立。

【条件操作符------------三目运算符】

条件操作符:

表达式1 ? 表达式2 : 表达式3

如果表达式1为true 那么输出表达式2,表达式1为假,那么输出表达式3

三目运算符:也可以称之为逗号表达式【逗号表达式-------就是逗号隔开的一串表达式,特点是从左向右依次计算整个表达式的结果是最后一个表达式的结果】 。

【逗号表达式练习】

【 下标引用操作符-------[],函数调用操作符 ------- (), . -> 结构成员操作符 】

C语言在访问数组元素的时候需要给出下标:数组下标是从0开始的是是一段连续的存储空间

函数调用操作符:

C语言函数调用操作符 ---------------------->()

补充:C语言中常见的关键字

auto -----------------关键字 ,是C语言本身内置的,关键字不是自己创建出来的,是不能自己创建的

break语句 ----------- for , 循环while 循环和do ---while循环放在一起使用

const --------------- 常属性无法被修改的属性

continue ---------- 继续的意思

enum ------------- 枚举

union --------------- 联合体

extern -------------- 声明外部符号的

void ---------------(无函数的返回类型)

volatile ----------- 操作系统不要去优化语句

return -------------- 返回值

变量名的定义不能和整型变量重合,不能是C语言中提供的关键字

变量的命名规则:

1: 有意义,见名知义,使用驼峰命名法

2:变量的名字是字母 ,数字,下滑线,不能以数字开头,不能是C语言中的关键字

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/850348.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

65. UE5 RPG 实现远程攻击

前面&#xff0c;我们实现了敌人的近战普通攻击&#xff0c;还兼容了对于没有武器的敌人的攻击。有近战就要有远程&#xff0c;这一篇&#xff0c;我们实现一下敌人的远程攻击。 首先&#xff0c;由于创建的资源增多&#xff0c;我们将GA和GE按敌人和英雄的类别分开&#xff0c…

MySQL—多表查询—联合查询

一、引言 之前学习了连接查询。现在学习联合查询。 union&#xff1a;联合、联盟 对于union查询&#xff0c;就是把多次查询的结果合并起来&#xff0c;形成一个新的查询结果集 涉及到两个关键字&#xff1a;union 和 union all 注意&#xff1a; union 会把上面两个SQL查询…

C++的STL 中 set.map multiset.multimap 学习使用详细讲解(含配套OJ题练习使用详细解答)

目录 一、set 1.set的介绍 2.set的使用 2.1 set的模板参数列表 2.2 set的构造 2.3 set的迭代器 2.4 set的容量 2.5 set的修改操作 2.6 set的使用举例 二、map 1.map的介绍 2.map的使用 2.1 map的模板参数说明 2.2 map的构造 2.3 map的迭代器 2.4 map的容量与元…

深圳中赢娱乐控股集团至江西省宜春市袁州区访问交流

2024年6月7日&#xff0c;深圳中赢娱乐控股集团受邀来到江西省宜春市袁州区就“短剧文旅”项目展开深度座谈&#xff0c;并与飞剑潭乡达成合作意向。 下午2:30&#xff0c;深圳中赢控股集团董事李平进带团队一行12人&#xff0c;访问宜春市袁州区&#xff0c;宜春市副市长谢萍、…

嵌入式学习——4——C++中的动态内存分配和回收(堆区)

1、内存的分配与回收 C语言中使用的是malloc和free函数进行动态内存分配和回收的。 C中依然可以使用上述的两个函数来完成动态内存分配和回收的。 C也给用户提供了两个关键字new、delete来完成动态内存分配和回收的 单个分配、回收 //在堆区申请了int类型的大小空间&#xff0c…

html--圣诞树

将以下代码保存到txt文件中&#xff0c;并改名为xx.html <html> <head> <title>圣诞树</title> <meta charset"utf-8" > <style> html, body { width: 100%; height: 100%; margin: 0; padding: 0; border: 0; } div { margin: …

Java--命令行传参

1.有时你希望运行一个程序时再传递给它消息&#xff0c;这要靠传递命令行参数给main&#xff08;&#xff09;函数实现 2.选中文件右键找到如图选项并打开 3.在文件地址下输入cmd空格符号&#xff0c;再按回车调出命令窗口 4.如图一步步进行编译&#xff0c;在向其传入参数&…

echarts柱状图的背景动态效果

这里的动态效果实现原理&#xff0c;就是相当于柱状图多了一组同系列数据&#xff0c;其值与数组展示数据一致&#xff08;类似下图&#xff09; 即&#xff0c;柱形图的每一个柱体都有它对应的另外一个柱体 其中白色柱体要与展示柱体重合&#xff0c;效果类似与给柱体做背景…

IEDA 默认依赖概述

IEDA 默认依赖概述 目录概述需求&#xff1a; 设计思路实现思路分析1.AI Azure OpenAlAzure Al SearchAmazon BedrockChroma Vector DatabaseMilvus Vector DatabaseMistral AlNeo4J Vector DatabaseOllamaOpenAlPGvector Vector DatabasePinecone Vector DatabasePostgresMLRe…

Java抽象队列同步器AQS

AQS介绍 AQS是一个抽象类&#xff0c;主要用来构建锁和同步器。 public abstract class AbstractQueuedSynchronizer extends AbstractOwnableSynchronizer implements java.io.Serializable { }AQS为构建锁和同步器提供了一些通用功能的实现&#xff0c;因此&#xff0c;使用…

关于音乐播放器与系统功能联动功能梳理

主要实现功能&#xff1a; 一、通知栏播放显示和控制 二、系统下拉栏中播放模块显示同步 三、与其他播放器状态同步&#xff1a;本应用播放时暂停其他应用播放&#xff0c;进入其他应用播放时&#xff0c;暂停本应用的后台播放 通知栏播放的显示和控制&#xff1a; 通过Not…

数字人实战第一天——最新数字人MuseTalk效果展示

最新数字人MuseTalk效果展示 MuseTalk 是由腾讯团队开发的先进技术&#xff0c;项目地址&#xff1a;GitHub - TMElyralab/MuseTalk: MuseTalk: Real-Time High Quality Lip Synchorization with Latent Space Inpainting&#xff0c;它是一个实时的音频驱动唇部同步模型。该模…

简单通用的系统安装、备份、还原方法,支持 ARM 系统【Ventory+FirePE+DiskGenius】

文章目录 0. 简介1. 制作 Ventory 启动盘1.1. 下载 Ventory1.2. 制作 Ventory 启动盘 2. 添加 FirePE 等系统镜像到启动盘2.1. 下载 FirePE2.2. 导出 .iso 系统镜像文件2.3. .iso 系统镜像文件添加至启动盘 3. 启动 FirePE 等系统镜像3.1. 在 bios 中选择启动盘启动3.2. 启动系…

访问网站时IP被阻止?原因及解决方法

在互联网上&#xff0c;用户可能会面临一个令人困扰的问题——当尝试访问某个特定的网站时&#xff0c;却发现自己的IP地址被该网站屏蔽。 IP地址被网站屏蔽是一个相对常见的现象&#xff0c;而导致这种情况的原因多种多样&#xff0c;包括恶意行为、违规访问等。本文将解释IP地…

大学搜题软件网课?推荐五个搜题软件和学习工具 #其他#经验分享#知识分享

大学生活中&#xff0c;选择适合自己的学习工具能够提高学习效率&#xff0c;让学习更加轻松愉快。 1.彩虹搜题 这个是公众号 提供了各大教材以及网课平台的练习题答案&#xff0c;强大的平台支持&#xff0c;无论是智慧树还是MOOC&#xff0c;只有老师们用不到&#xff0c;…

理解JVM内存模型与Java内存模型(JMM)

理解JVM内存模型与Java内存模型&#xff08;JMM&#xff09; 在Java程序的运行过程中&#xff0c;内存管理和线程的同步是两个重要的概念。本文将深入探讨JVM内存模型&#xff08;Java Virtual Machine Memory Model&#xff09;和JMM&#xff08;Java Memory Model&#xff0…

实现开源可商用的 ChatPDF RAG:密集向量检索(R)+上下文学习(AG)

实现 ChatPDF & RAG&#xff1a;密集向量检索&#xff08;R&#xff09;上下文学习&#xff08;AG&#xff09; RAG 是啥&#xff1f;实现 ChatPDF怎么优化 RAG&#xff1f; RAG 是啥&#xff1f; RAG 是检索增强生成的缩写&#xff0c;是一种结合了信息检索技术与语言生成…

型号FM152A,FM148R和利时

型号FM152A,FM148R和利时。控制系统的仿真,综合考虑多方面的因素,本文将用MCGS组态软件设计一个仿真实验监控平台来对其进行实时控制.&#xff0c;完成仿真实验监控平台的设计,型号FM152A,FM148R和利时。最终达到对水箱液位实时监控,实验数据采集,报表的输出和数据的同步显示MC…

Live800:深度解析,客户服务如何塑造品牌形象

在当今竞争激烈的市场环境中&#xff0c;品牌形象对于企业的成功至关重要。而客户服务作为品牌与消费者之间最直接的互动方式&#xff0c;不仅影响着消费者的购买决策&#xff0c;更在塑造品牌形象方面发挥着不可替代的作用。本文将深度解析客户服务如何塑造品牌形象&#xff0…

【Unity3D小功能】Unity3D中UGUI-Text实现打字机效果

推荐阅读 CSDN主页GitHub开源地址Unity3D插件分享简书地址QQ群&#xff1a;398291828 大家好&#xff0c;我是佛系工程师☆恬静的小魔龙☆&#xff0c;不定时更新Unity开发技巧&#xff0c;觉得有用记得一键三连哦。 一、前言 需求要实现Text的打字机效果&#xff0c;一看居然…