Day 17------C语言收尾之链表的删除、位运算、预处理、宏定义
链表
空链表:
注意:函数不能返回局部变量的地址
操作:
1.创建空链表
2.头插
3.尾插
4.链表遍历
5.链表的长度
free:释放
删除:
头删
void popFront(struct Node *head)
{
//1.p指针变量指向首节点
//2.断开链表
head->next = p->next;
//3.释放p所在的节点
free (p);
}
void popFront (struct Node *head) //头删函数{if(isPuanduan(head==0)){struct Node *p = head->next; //定义一个结构体指针指向首节点head->next = p->next; //将下一个节点的地址给到头结点的指针域free(p);}}
尾删:
void popBake(struct Node *head)
{
//1.p定位到尾节点的前一个节点
while (p->next->next != NULL)
{
p = p->next;
}
//2.释放 p->next
//3.p所在节点成为了新的尾节点
p->next = NULL;
}
void popBake (struct Node *head) //尾删函数
{if (isPuanduan(head)==0) { struct Node *p = head; //定义一个结构体指针指向首节点while (p->next->next != NULL) //判断这个链表的指针域的下个指针域是否为空{p = p->next; //不是继续指向下一个}free(p->next); //删除尾节点p->next = NULL; //给现在指的节点的指针域为空}
}
位运算
位运算——0 1
用途
1、控制硬件,硬件的操作,往往都是操作对应的寄存器的位来实现的。
2、操作系统的某些文件信息的存储,通常也是用位来描述的。
比如: ls -l命令看到的关于文件的一些信息
3、许多压缩和加密操作都是直接处理的单独的位。
运算说明
& --- 有一个位为0,则结果为0,只有两个位都为1时,结果才为1
//逻辑运算中的规则:一假则假
l---有一个位为1,则结果为1 ,只有两个位都为0时,结果才为0
//逻辑运算中的规则:一真则真
~--- 0,1相反/逻辑运算中的规则:一假则假
^ ---相同为0相异为1
//同假异真
<<-----左移运算 数值<<位数 左移一次相当于乘二
>>-----右移运算 数值>>位数
偶数位置0:
#include <stdio.h>int main (void)
{int a = 0xffffffff;int i = 0;while(i<32){i+=2;a = a&(~(1<<i));}printf ("%#x\n",a);return 0;
}
基数位置1:
#include <stdio.h>int main (void)
{int a = 0x55555555;int i = 0;while (i<32){i++;if (i%2 != 0){a = a | (1<<i);}}printf("%#x\n",a);return 0;
}
异或运算:
//同假异真
int a = 0x33;
a ^ 0x55;
0011 0011
0101 0101 ^
----------
0110 0110 //0x66
<<
数值<<位数
int a = 0x33;
a<<1
0110 0110
6 6 //左移一位相当于乘以2
>>
右移:较为特殊
注意:看数据类型 有符号类型的数据,此时右移,最高位补符号 //算数右移
无符号类型数据 默认补零 //逻辑右移
统计int类型中1的个数
int a = 1213; //二进制中1的个数
#include <stdio.h>int main (void)
{unsigned int a = 1213;int i = 0;int cat=0;for (i = 0;i<32;++i){if(a>>i & 1){cat++;}}printf ("%d\n",cat);return 0;
}
预处理
不是c语言的一部分
编译过程的一部分
#include
#define N 10
预处理命令:
都是以 # 开头的
编辑程序 --vi
编译程序 --gcc
运行文件
. c———>可执行文件的过程
#include <stdio.h>
#define Pi 3.1415926
#define Max(a,b) (a)>(b)?(a):(b)int main (void)
{
#if 0float s = 0;float r = 6;float C = 0;scanf ("%f",&r);printf ("s = %.2f C = %.2f\n",Pi*r*r,2*Pi*r);
#endifint a=0;int b=0;scanf("%d%d",&a,&b);printf ("Max = %d\n",Max(a,b));return 0;
}
宏定义
#define 宏名
预处理过程:文本的原样替换
带参宏:
文本替换 --- 有可能导致,
源代码的体积变大 。
快 --预处理阶段干
编译之后,对应的代码就已经在可执行代码中了
函数:
调用 ---- 只有一份代码
会有时空开销。
可以选择带参宏,功能小,代码量少。
相关文章:

Day 17------C语言收尾之链表的删除、位运算、预处理、宏定义
链表 空链表: 注意:函数不能返回局部变量的地址 操作: 1.创建空链表 2.头插 3.尾插 4.链表遍历 5.链表的长度 free:释放 删除: 头删 void popFront(struct Node *head) { //1.p指针变量指向首节点 //2.断…...

python_蓝桥杯刷题记录_笔记_全AC代码_入门5
前言 关于入门地刷题到现在就结束了。 题单目录 1.P1579 哥德巴赫猜想(升级版) 2.P1426 小鱼会有危险吗 1.P1579 哥德巴赫猜想(升级版) 一开始写的代码是三重循环,结果提交上去一堆地TLE,然后我就给减少…...

二叉树的详解
二叉树 【本节目标】 掌握树的基本概念掌握二叉树概念及特性掌握二叉树的基本操作完成二叉树相关的面试题练习 树型结构(了解) 概念 树是一种非线性的数据结构,它是由n(n>0)个有限结点组成一个具有层次关系的集合。…...

【第三十五节】idea项目的创建以及setting和Project Structure的设置
项目创建 Project Structure的设置 点击file ~ Project Structure 进入...
【c++】跟webrtc学引用计数
rtc::RefCountInterface 接口类 G:\CDN\rtcCli\m98\src\rtc_base\ref_count.h引用计数想形成一种树状结构 // Interfaces where refcounting is part of the public api should // inherit this abstract interface. The implementation of these // methods is usually provid…...

开源免费的物联网网关 IoT Gateway
1. 概述 物联网网关,也被称为IOT网关,是一种至关重要的网络设备。在物联网系统中,它承担着连接和控制各种设备的重要任务,将这些设备有效地连接到云端、本地服务器或其他设备上。它既能够在广域范围内实现互联,也能在…...

华为OD机试真题C卷-篇3
文章目录 查找一个有向网络的头节点和尾节点幼儿园篮球游戏 查找一个有向网络的头节点和尾节点 在一个有向图中,有向边用两个整数表示,第一个整数表示起始节点,第二个整数表示终止节点;图中只有一个头节点,一个或者多…...

[SWPUCTF 2021 新生赛]include
他让我们传入一个flag值 我们传入即可看到代码部分 传入一个php的伪类即可 得到经过Base64加密的flag,解密即可...

LeetCode、17. 电话号码的字母组合【中等,dfs回溯】
文章目录 前言LeetCode、17. 电话号码的字母组合【中等,dfs回溯】题目与类型思路递归回溯优化:StringBuilder来回溯补充代码:2024.1.31(简化) 资料获取 前言 博主介绍:✌目前全网粉丝2W,csdn博…...

SSRF漏洞给云服务元数据带来的安全威胁
文章目录 前言元数据服务威胁1.1 Metadata元数据1.2 RAM资源管理角色1.3 STS 临时凭据利用1.4 CF云环境利用框架1.5 元数据安全性增强 TerraformGoat2.1 永久性AccessKey2.2 SSRF靶场环境搭建2.3 腾讯云CVM配角色2.4 接管腾讯云控制台 SSRF组合拳案例3.1 上传图片功能SSRF3.2 文…...
【C++】强制类型转换
强制类型转换分为显式和隐式 显式直接用小括号强制转换,float b (int)a; 隐式直接 float b 0.5; int a b; C中更推荐用四个强制类型转换的关键字: 1、static_cast, 2、const_cast, 3、reinterpret_cast, 4、dynami…...

java日志框架总结(四 、JCL日志门面技术)
日志框架出现的历史顺序:Log4j → JUL → JCL → slf4j → logback → log4j2 一、背景 在前面博文中,我们分别讲述了常用的2个日志框架:JUL(Java Util Logging)、Log4J。那么如何选择使用哪一个呢? 根据项…...

mfc140.dll丢失的几种修复方式,有效的解决文件丢失问题
mfc140.dll是Microsoft Foundation Class (MFC)库中的一个非常重要的DLL文件。它承载了许多被执行程序使用的函数和资源。这个库主要被广泛应用于开发Windows操作系统上的应用程序。然而,有时候我们可能会遭遇到mfc140.dll缺失或损坏的情况,这会导致依赖…...

从一个小故事讲解观察者模式~
定义对象间的一种一对多的依赖关系,当一个对象的状态发生改变时,所有依赖于它的对象都得到通知并被自动更新。 什么是观察者模式? 观察者模式在我们的日常生活中极其常见。 先来看看观察者模式的定义: 观察者模式定义了对象之间…...

LeetCode、1137. 第 N 个泰波那契数【简单,动态规划】
文章目录 前言LeetCode、1137. 第 N 个泰波那契数【简单,动态规划】题目与分类思路一维动态规划 资料获取 前言 博主介绍:✌目前全网粉丝2W,csdn博客专家、Java领域优质创作者,博客之星、阿里云平台优质作者、专注于Java后端技术…...

Python爬虫urllib详解
前言 学习爬虫,最初的操作便是模拟浏览器向服务器发出请求,那么我们需要从哪个地方做起呢?请求需要我们自己来构造吗?需要关心请求这个数据结构的实现吗?需要了解 HTTP、TCP、IP 层的网络传输通信吗?需要知…...

Linux嵌入式开发+驱动开发-中断
swi汇编指令可以产生软中断,以下是硬件中断的产生到执行完毕的全过程: 在自己设计的芯片“CPU响应中断”程序的第四个步骤可以转向“中断向量控制器”,中断向量控制器中存储中断元服务地址即处理中断处理程序的地址,而不用使用0X1…...
android tv开发-1,leanback
目录 1.leanback库的一些事 2.leanback在使用时遇到的一些麻烦 视频卡片 页面空白 关于左侧菜单的一些设置 数据加载异常与加载中的一些操作 如果页面无数据,如何显示错误的页面....

chisel RegInit/UInt/U
val reg RegInit(0.U(8.W)) //ok val reg RegInit(0.UInt(8.W)) //errU 使用在数字 . 后边50.U UInt 使用在IO(new Bundle val a Input(UInt(8.W)) 或者 def counter(max:UInt, a1:UInt) package emptyimport chisel3._ import chisel3.util._class MyCounter extends …...
华为OD机试真题-田忌赛马-2024年OD统一考试(C卷)
题目: 给定两个只包含数字的数组a,b,调整数组 a 里面数字的顺序,使得尽可能多的 a[i] >b[i]。数组 a和 b 中的数字各不相同。 输出所有可以达到最优结果的 a 数组的数量 输入描述: 输入的第一行是数组 a 中的数字,其中只包含数字,每两个数字之间相隔一个空格,a 数组…...

Docker 离线安装指南
参考文章 1、确认操作系统类型及内核版本 Docker依赖于Linux内核的一些特性,不同版本的Docker对内核版本有不同要求。例如,Docker 17.06及之后的版本通常需要Linux内核3.10及以上版本,Docker17.09及更高版本对应Linux内核4.9.x及更高版本。…...
ES6从入门到精通:前言
ES6简介 ES6(ECMAScript 2015)是JavaScript语言的重大更新,引入了许多新特性,包括语法糖、新数据类型、模块化支持等,显著提升了开发效率和代码可维护性。 核心知识点概览 变量声明 let 和 const 取代 var…...
C++ 基础特性深度解析
目录 引言 一、命名空间(namespace) C 中的命名空间 与 C 语言的对比 二、缺省参数 C 中的缺省参数 与 C 语言的对比 三、引用(reference) C 中的引用 与 C 语言的对比 四、inline(内联函数…...
【C++从零实现Json-Rpc框架】第六弹 —— 服务端模块划分
一、项目背景回顾 前五弹完成了Json-Rpc协议解析、请求处理、客户端调用等基础模块搭建。 本弹重点聚焦于服务端的模块划分与架构设计,提升代码结构的可维护性与扩展性。 二、服务端模块设计目标 高内聚低耦合:各模块职责清晰,便于独立开发…...

蓝桥杯3498 01串的熵
问题描述 对于一个长度为 23333333的 01 串, 如果其信息熵为 11625907.5798, 且 0 出现次数比 1 少, 那么这个 01 串中 0 出现了多少次? #include<iostream> #include<cmath> using namespace std;int n 23333333;int main() {//枚举 0 出现的次数//因…...

html-<abbr> 缩写或首字母缩略词
定义与作用 <abbr> 标签用于表示缩写或首字母缩略词,它可以帮助用户更好地理解缩写的含义,尤其是对于那些不熟悉该缩写的用户。 title 属性的内容提供了缩写的详细说明。当用户将鼠标悬停在缩写上时,会显示一个提示框。 示例&#x…...

HarmonyOS运动开发:如何用mpchart绘制运动配速图表
##鸿蒙核心技术##运动开发##Sensor Service Kit(传感器服务)# 前言 在运动类应用中,运动数据的可视化是提升用户体验的重要环节。通过直观的图表展示运动过程中的关键数据,如配速、距离、卡路里消耗等,用户可以更清晰…...

安宝特方案丨船舶智造的“AR+AI+作业标准化管理解决方案”(装配)
船舶制造装配管理现状:装配工作依赖人工经验,装配工人凭借长期实践积累的操作技巧完成零部件组装。企业通常制定了装配作业指导书,但在实际执行中,工人对指导书的理解和遵循程度参差不齐。 船舶装配过程中的挑战与需求 挑战 (1…...
Fabric V2.5 通用溯源系统——增加图片上传与下载功能
fabric-trace项目在发布一年后,部署量已突破1000次,为支持更多场景,现新增支持图片信息上链,本文对图片上传、下载功能代码进行梳理,包含智能合约、后端、前端部分。 一、智能合约修改 为了增加图片信息上链溯源,需要对底层数据结构进行修改,在此对智能合约中的农产品数…...
C++.OpenGL (14/64)多光源(Multiple Lights)
多光源(Multiple Lights) 多光源渲染技术概览 #mermaid-svg-3L5e5gGn76TNh7Lq {font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:16px;fill:#333;}#mermaid-svg-3L5e5gGn76TNh7Lq .error-icon{fill:#552222;}#mermaid-svg-3L5e5gGn76TNh7Lq .erro…...