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语言中的关键字

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

Macbook M芯片JDK的安装

Macbook M芯片JDK的安装 下载 搜索zulu&#xff1b; 进入这个网址 https://www.azul.com/downloads/#zulu 进入页面后向下滑动 选择对应选项 然后点击Download进行下载。 选择.dmg格式的安装包&#xff0c;点击。 安装 下载完成后&#xff0c;到下载目录&#xff0c;双击…

电感十大供应商

电感品牌-电感器品牌排行榜-电感十大品牌-Maigoo品牌榜

C++ | Leetcode C++题解之第134题加油站

题目&#xff1a; 题解&#xff1a; class Solution { public:int canCompleteCircuit(vector<int>& gas, vector<int>& cost) {int n gas.size();int i 0;while (i < n) {int sumOfGas 0, sumOfCost 0;int cnt 0;while (cnt < n) {int j (i …

大模型挑战高考作文 结果如何?

最近正值高考季&#xff0c;高考语文作文一直是每年热门的话题&#xff0c;和往年不同的是&#xff0c;今年高考新课标 I 卷作文题目首次出现和人工智能相关的主题&#xff0c;我们来看看题干。 这说明人工智能被大众所接受&#xff0c;受众也从技术人员普及到了大众&#xff0…

SAP ABAP 往数据库表里加数据

目录 方法一&#xff1a;SE16N SE11 方法二&#xff1a;创建维护VIEW&#xff1a;SE11 SM30 Error补充说明&#xff1a; 方法一&#xff1a;SE16N SE11 首先SE16N 进来。 进来之后在テーブル的位置输入表名&#xff0c;然后点击执行&#xff08;F8&#xff09; 如果第一次…

【数据结构】 -- 堆 (堆排序)(TOP-K问题)

引入 要学习堆&#xff0c;首先要先简单的了解一下二叉树&#xff0c;二叉树是一种常见的树形数据结构&#xff0c;每个节点最多有两个子节点&#xff0c;通常称为左子节点和右子节点。它具有以下特点&#xff1a; 根节点&#xff08;Root&#xff09;&#xff1a;树的顶部节…

【简单介绍下DALL-E2,什么是DALL-E2?】

&#x1f308;个人主页: 程序员不想敲代码啊 &#x1f3c6;CSDN优质创作者&#xff0c;CSDN实力新星&#xff0c;CSDN博客专家 &#x1f44d;点赞⭐评论⭐收藏 &#x1f91d;希望本文对您有所裨益&#xff0c;如有不足之处&#xff0c;欢迎在评论区提出指正&#xff0c;让我们共…

软件游戏提示msvcp120.dll丢失的解决方法,总结多种靠谱的解决方法

在电脑使用过程中&#xff0c;我们可能会遇到一些错误提示&#xff0c;其中之一就是“找不到msvcp120.dll”。那么&#xff0c;msvcp120.dll是什么&#xff1f;它对电脑有什么影响&#xff1f;有哪些解决方法&#xff1f;本文将从以下几个方面进行探讨。 一&#xff0c;了解msv…

Java中CAS机制详解

文章目录 概述CAS的基本概念CAS基本原理Java中的CAS实现什么是unsafe原子操作类解析 CAS机制的优缺点优点缺点 CAS应用场景CAS机制优化总结 概述 传统的并发控制手段&#xff0c;如使用synchronized关键字或者ReentrantLock等互斥锁机制&#xff0c;虽然能够有效防止资源的竞争…

力扣hot100学习记录(十二)

94. 二叉树的中序遍历 给定一个二叉树的根节点 root&#xff0c;返回它的中序遍历。 题意 给定一个二叉树&#xff0c;返回它的中序遍历 思路 采用递归的思想&#xff0c;只要根节点不为空&#xff0c;则一直递归遍历左子树&#xff0c;然后将根节点的值存入结果&#xff0c;…

LLVM Cpu0 新后端9 objdump readelf

想好好熟悉一下llvm开发一个新后端都要干什么&#xff0c;于是参考了老师的系列文章&#xff1a; LLVM 后端实践笔记 代码在这里&#xff08;还没来得及准备&#xff0c;先用网盘暂存一下&#xff09;&#xff1a; 链接: https://pan.baidu.com/s/1yLAtXs9XwtyEzYSlDCSlqw?…

从哲学层面谈稳定性建设

背景 我&#xff08;姓名&#xff1a;黄凯&#xff0c;花名&#xff1a;兮之&#xff09;在阿里工作了五年&#xff0c;一直在一个小团队从事电商的稳定性工作。看了很多稳定性相关的文档&#xff0c;很少有能把稳定性说明白的文档。也有一些文档也能把涉及的方方面面说清楚&a…

Linux基础 (十五):TCP 协议特点和UDP协议

上一节&#xff0c;我们学习了TCP协议的服务器-客户端的编程流程以及对中间的过程进行了详细的讨论&#xff0c;那么&#xff0c;这一节&#xff0c;我们对于TCP协议的特点进行进一步的分析&#xff0c;这也是面试的重点和难点。 目录 一、TCP 协议特点 1.1 连接的建立与断…

关系数据库标准查询语言-SQL-SQL语言概述

一、SQL(Structured Query Language)语言 1、是高度非过程化的语言 2、关系数据库管理系统(RDBMS)都支持SQL标准 3、具有定义、查询、更新、控制四大功能 4、数据库对象由数据库&#xff08;Database&#xff09;、基本表&#xff08;Table&#xff09;、视图&#xff08;V…

简单的基于threejs和BVH第一人称视角和第三人称视角控制器

渲染框架是基于THREE,碰撞检测是基于BVH。本来用的是three自带的octree结构做碰撞发现性能不太好 核心代码&#xff1a; import * as THREE from three import { RoundedBoxGeometry } from three/examples/jsm/geometries/RoundedBoxGeometry.js; import { MeshBVH, MeshBVHHe…

【iOS】JSONModel源码阅读笔记

文章目录 前言一、JSONModel使用二、JSONModel其他方法转换属性名称 三、源码分析- (instancetype)initWithDictionary:(NSDictionary*)dict error:(NSError **)err[self init]__setup____inspectProperties - (BOOL)__doesDictionary:(NSDictionary*)dict matchModelWithKeyMa…

小白都可以通过U盘重装系统,再也不用花50块钱去安装系统啦

下载Ventoy 软件 1、今天带着大家通过Ventoy 安装Windows 11 系统。 2、首先我们通过官网如下地址&#xff1a;https://www.ventoy.net/cn/&#xff0c;找到我们对应系统的Ventoy 软件安装包。 3、通过官网可以找到软件包的地址地址&#xff0c;如下图所示。 4、如下就是我下…

面试题 17.15. 最长单词

. - 力扣&#xff08;LeetCode&#xff09; class Solution { public: struct Trie {Trie() {end false;next.resize(26, nullptr);}bool end;std::vector<Trie*> next; };void insert_trie(Trie* root, std::string& word) {Trie* cur root;for (int i 0; i <…

《MySQL是怎样运行的》读书笔记(三) B+树索引

前言 从前面数据存储结构中我们已经知道了页和记录的关系示意图: 其中页a、页b、页c ... 页n 这些页可以不在物理结构上相连&#xff0c;只要通过双向链表相关联即可。 在正式介绍索引之前&#xff0c;我们需要了解一下没有索引的时候是怎么查找记录的。下边先只讨论搜索条件…

SpringBoot 参数验证的几种方式

文章目录 SpringBoot 参数验证1、为什么要进行参数验证2、验证方式2.1 if 语句判断2.2 Assert2.3 Validator2.3.1 引入依赖2.3.2 定义参数实体类2.3.4 定义特定异常全局拦截方法2.3.5 定义校验类进行测试2.3.6 测试 2.4 自定义验证注解2.4.1 定义自定义注解2.4.2 定义自定义验证…