1-5 C语言操作符

news2024/11/24 4:18:18

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.coloradmin.cn/o/1804186.html

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

相关文章

Unity 编辑器扩展,获取目录下所有的预制件

先看演示效果 实现方案 1创建几个用于测试的cube 2&#xff0c;创建一个Editor脚本 3&#xff0c;编写脚本内容 附上源码 using UnityEditor; using UnityEngine;public class GetPrefeb : EditorWindow {private string folderPath "Assets/Resources"; // 指定预…

【Python】数据处理:文本文件操作

在Python中&#xff0c;处理文本文件是非常常见的任务。可以使用内置的open函数来打开、读取和写入文本文件。 打开文件 使用open函数打开文件。该函数有两个主要参数&#xff1a; open(file, moder, buffering-1, encodingNone, errorsNone, newlineNone, closefdTrue, ope…

ssm602社区医疗保健监控系统+vue【以测试】

前言&#xff1a;&#x1f469;‍&#x1f4bb; 计算机行业的同仁们&#xff0c;大家好&#xff01;作为专注于Java领域多年的开发者&#xff0c;我非常理解实践案例的重要性。以下是一些我认为有助于提升你们技能的资源&#xff1a; &#x1f469;‍&#x1f4bb; SpringBoot…

【设计模式】行为型设计模式之 策略模式学习实践

介绍 策略模式&#xff08;Strategy&#xff09;&#xff0c;就是⼀个问题有多种解决⽅案&#xff0c;选择其中的⼀种使⽤&#xff0c;这种情况下我们 使⽤策略模式来实现灵活地选择&#xff0c;也能够⽅便地增加新的解决⽅案。⽐如做数学题&#xff0c;⼀个问题的 解法可能有…

Linux shell编程基础

Shell 是一个用 C 语言编写的程序&#xff0c;它是用户使用 Linux 的桥梁。Shell 既是一种命令语言&#xff0c;又是一种程序设计语言。Shell 是指一种应用程序&#xff0c;这个应用程序提供了一个界面&#xff0c;用户通过这个界面访问 Linux 内核的服务。 Shell 脚本&#x…

GQA,MLA之外的另一种KV Cache压缩方式:动态内存压缩(DMC)

0x0. 前言 在openreview上看到最近NV的一个KV Cache压缩工作&#xff1a;https://openreview.net/pdf?idtDRYrAkOB7 &#xff0c;感觉思路还是有一些意思的&#xff0c;所以这里就分享一下。 简单来说就是paper提出通过一种特殊的方式continue train一下原始的大模型&#x…

打破 AIGC 算力困境,io.net 如何实现“GPU 互联网”?

AIGC 在全球快速发展的当下&#xff0c;诸多项目深陷 GPU 运力不足&#xff0c;速度放缓、任务宕机、项目崩溃等困境&#xff0c;作为瞄准 AI 理念和 DePIN 赛道的 Solana 生态项目新星 io.net 来说&#xff0c;如何集成项目控制与云计算服务成为抢占市场的重要发力方向。第 11…

将web项目打包成electron桌面端教程(一)vue3+vite+js

说明&#xff1a;后续项目需要web端和桌面端&#xff0c;为了提高开发效率&#xff0c;准备直接将web端的代码打包成桌面端&#xff0c;在此提前记录一下demo打包的过程&#xff0c;需要注意的是vue2或者vue3的打包方式各不同&#xff0c;如果你的项目不是vue3vitejs&#xff0…

Nagios的安装和使用

*实验* *nagios安装和使用* Nagios 是一个监视系统运行状态和网络信息的监视系统。Nagios 能监视所指定的本地或远程主机以及服务&#xff0c;同时提供异常通知功能等. Nagios 可运行在 Linux/Unix 平台之上&#xff0c;同时提供一个可选的基于浏览器的 WEB 界面以方便系统管…

go语言后端开发学习(二)——基于七牛云实现的资源上传模块

前言 在之前的文章中我介绍过我们基于gin框架怎么实现本地上传图片和文本这类的文件资源(具体文章可以参考gin框架学习笔记(二) ——相关数据与文件的响应)&#xff0c;但是在我们实际上的项目开发中一般却是不会使用本地上传资源的方式来上传的&#xff0c;因为文件的上传与读…

项目验收总体计划书(实际项目验收原件参考Word)

测试目标&#xff1a;确保项目的需求分析说明书中的所有功能需求都已实现&#xff0c;且能正常运行&#xff1b;确保项目的业务流程符合用户和产品设计要求&#xff1b;确保项目的界面美观、风格一致、易学习、易操作、易理解。 软件全套文档过去进主页。 一、 前言 &#xff0…

图鸟UI-Icon演示:探索多功能前端模板的魅力

在当今数字化的时代&#xff0c;用户界面&#xff08;UI&#xff09;设计在提升用户体验方面扮演着至关重要的角色。随着技术的不断进步&#xff0c;开发者们对于高效、统一且美观的UI组件需求日益增加。图鸟UI&#xff0c;作为一款功能强大且灵活的UI框架&#xff0c;正满足了…

一款免费文件夹同步工具,旨在帮助用户在不同磁盘或文件夹间进行文件和目录的复制、移动和同步工作

一、简介 1、一款免费文件夹同步工具&#xff0c;旨在帮助用户在不同磁盘或文件夹间进行文件和目录的复制、移动和同步工作。这款工具因其简单易用、高度可定制化的特点&#xff0c;受到了广大用户的青睐。SyncToy支持多种同步模式&#xff0c;包括镜像同步、单向同步以及增量同…

第四篇红队笔记-百靶精讲之Prime-wfuzz-wpscan-openssl enc

靶机Prime渗透 主机发现 nmap扫描与分析 目录爆破与模糊测试 dirb 目录扫描 dev secret.txt wfuzz发现 file参数 根据secret.txt-location.txt 和 file参数结合 secrettier360 根据filelocation.txt得到的on some other php page&#xff08;改用之前扫到image.p…

GDAL 保存TIFF时的Options的可选项

使用GDAL保存文件时&#xff0c;高级操作需要对参数Options进行设置&#xff0c;但代码注释中没有这个参数的可选项&#xff0c;在GDAL的官网上有这部分内容&#xff0c;在此记录&#xff0c;以防遗忘&#xff0c;也为方便同道中人查询。 官网关于gdal Driver options参数设置的…

Oxlint 会取代 Eslint 吗?

最近&#xff0c;一个基于 Rust 的代码检查工具 Oxlint 在国外前端社区引起了热议&#xff0c;许多专家对其给予了高度评价。那么&#xff0c;相比于它的大哥 Eslint&#xff0c;Oxlint 有哪些优势&#xff1f;它会在未来取代 Eslint 吗&#xff1f;本文将讨论这个话题。 Oxc 和…

STM32高级控制定时器(STM32F103):TIM1和TIM8介绍

目录 概述 1 认识TIM1和TIM8 2 TIM1和TIM8的特性 3 TIM1和TIM6时基和分频 3.1 时基单元 3.2 预分频 3.3 时基和分频相关寄存器 3.3.1TIMx_CR1 3.3.2 TIMx_PSC 概述 本文主要介绍STM32高级定时器TIM1和TIM8的功能&#xff0c;还介绍了与之相关的寄存器的配置参数。包括…

Vue CLI 4与项目构建实战指南

title: Vue CLI 4与项目构建实战指南 date: 2024/6/9 updated: 2024/6/9 excerpt: 这篇文章介绍了如何使用Vue CLI优化项目构建配置&#xff0c;提高开发效率&#xff0c;涉及配置管理、项目部署策略、插件系统定制以及Webpack和TypeScript的深度集成技巧。 categories: 前端…

接口自动化Requests+Pytest基础实现

目录 1. 数据库以及数据库操作1.1 概念1.2 分类1.3 作用 2 python操作数据库的相关实现2.1 背景2.2 相关实现 3. pymysql基础3.1 整个流程3.2 案例3.3 Pymysql工具类封装 4 事务4.1 案例4.2 事务概念4.3 事务特征 5. requests库5.1 概念5.2 角色定位5.3 安装5.4 校验5.5 reques…

如何微调 Llama 3 进行序列分类?

节前&#xff0c;我们星球组织了一场算法岗技术&面试讨论会&#xff0c;邀请了一些互联网大厂朋友、参加社招和校招面试的同学. 针对算法岗技术趋势、大模型落地项目经验分享、新手如何入门算法岗、该如何准备、面试常考点分享等热门话题进行了深入的讨论。 汇总合集&…