当前位置: 首页 > news >正文

进阶 pro max

最近搞了许多有趣的东西,比如自制rtos,速成数模电,学了一点点的AD,看着视频弄了HAL库,以及定时器和串口中断配合实现接收任意长度(不超过缓冲值)数据,还有配置hal库的freertos+fafts ,今天到货了前两天买的硬件十万个为什么,又下单了H750VB板子,这两天过敏又犯了, 无语,一字难受。

总结一下大二暑假学的东西   

定时器判断长短按
定时器和串口判断一帧数据
bootloader
三极管,mos管
防反接电路
dcdc电源原理,ldo,电容滤波原理
元器件的认识,磁珠电感电容电阻各种二极管
esp8266获取天气
C语言结构体,常用函数,关键字指针等知识点总结。
手写i2c读rom,学习spi读写flash和sd卡
做完辅助穿衣机器人的程序
嘉立创画完温湿度检测的板子
keil调试方法
hal库的使用
can
步进电机
一点点的AD

在此更新一些C语言杂乱知识点和疑难杂症........


函数指针和指针函数

函数指针

本质是指针,指向一个函数 。

qsort

void qsort (void* base, size_t num, size_t size,int (*compar)(const void*,const void*));// base  -> 需要排序的数组的起始地址
// num   -> 数组内元素的个数(数组的大小)
// size  -> 一个元素的大小(单位是字节)
// int (*compar)(const void*,const void*)   -> compar(一个函数指针),类型是 int (*)(const void*,const void*)

c - qsort函数使用方法总结(详细全面+代码) - 个人文章 - SegmentFault 思否icon-default.png?t=N7T8https://segmentfault.com/a/1190000038746268指针函数和函数指针_指针函数 函数指针-CSDN博客icon-default.png?t=N7T8https://blog.csdn.net/u010280075/article/details/88914424?ops_request_misc=%257B%2522request%255Fid%2522%253A%2522172407382416800182122635%2522%252C%2522scm%2522%253A%252220140713.130102334..%2522%257D&request_id=172407382416800182122635&biz_id=0&utm_medium=distribute.pc_search_result.none-task-blog-2~blog~top_positive~default-1-88914424-null-null.nonecase&utm_term=%E5%87%BD%E6%95%B0%E6%8C%87%E9%92%88&spm=1018.2226.3001.4450C语言---qsort 函数详解与实现(快速排序任何类型)-CSDN博客icon-default.png?t=N7T8https://blog.csdn.net/2302_78684687/article/details/137467421

大家也都能了解,这个函数的重点就在于 compar 这一函数指针。

问题是怎么使用qsort来对一个数组进行排序 ,上面是对qsort四个参数的介绍,其中数组起始地址就是数组名(这点在上一篇文章中指针和数组的关系中讲过,江科大的指针视频中也提到过)。

后面是数组的元素个数和每个元素的大小

char shuzu[]={1,2,3,4,5,6,77,8}
//数组元素个数
sizeof(shuzu) / sizeof(char) ;
//每个元素的字节大小
sizeof(shuzu[0]);

sizeof(char) 和 sizeof(shuzu[0]) 是一样的。

最最重点的就是第四个参数是一个函数,函数名可以自由定义,但是参数必须和qsort给的如出一辙,即为

char sum_int(const void* p1, const void* p2)
{
//	return (int)(*(int*)p1 - *(int*)p2);    //->升序return (int)(*(char *)p2 - *(char*)p1);    //->降序
}

qsort函数根据函数指针所指向的函数的返回值和 0的关系做出判断从而进行排序,所以至于是从大到小还是从小到达,可以自己决定。

在 sum_int() 函数中需要将参数p1和p2转义为数组的定义类型。p1p2是指针,数值等于地址 。所以(char*)的转义符前面还有一个*,代表p1p2所指向地址的数值 。

最近看的回调函数也和函数指针相关。

指针函数

本质是函数,返回一个指针 。返回指针的函数叫指针函数

#include <stdio.h>
#include <stdlib.h>
char  *get_num ( char *n,const char *m);
int main()
{char a1[100]= "hello";char a2[]= "world";printf("%s", get_num(a1,a2));
}char *get_num ( char *n,const char *m)
{char *p=n;while(*n != '\0') { n++; }while(*m != '\0') { *n++ = *m++ ;} *n = '\0';return p;
}

结果为helloworld

定义 函数  get_num()实现字符串的拼接并返回拼接好的字符串的起始地址。

原来pritf函数打印字符串的时候输入字符串的地址就行,比如 

 char a2[]= "world";printf("%s", a2);

a2 是数组名 ,也就是数组地址 。

在 函数  get_num() 内部用循环将指针 n 指向到数组 n 的末尾 ,之后从数组 a 的末尾开始用循环取m的值一位一位的的赋值给n指导数组m结束,实现字符串的拼接。


浮点数在内存中的存储

C语言---浮点数在内存中的存储_c浮点数存储-CSDN博客icon-default.png?t=N7T8https://blog.csdn.net/2302_80826557/article/details/137436685?ops_request_misc=%257B%2522request%255Fid%2522%253A%2522172407546616800172520370%2522%252C%2522scm%2522%253A%252220140713.130102334..%2522%257D&request_id=172407546616800172520370&biz_id=0&utm_medium=distribute.pc_search_result.none-task-blog-2~blog~sobaiduend~default-1-137436685-null-null.nonecase&utm_term=%E6%B5%AE%E7%82%B9%E6%95%B0%E5%9C%A8%E5%86%85%E5%AD%98%E4%B8%AD%E7%9A%84%E5%AD%98%E5%82%A8&spm=1018.2226.3001.4450在浮点数进行判断的时候,在浮点数后边加一个f

如下图所示

int main()
{float f1=2.2;if(f1 == 2.2)  printf("2.2 = 2.2\r\n");else  printf("no xiangdeng\r\n");if(f1 == 2.2f)  printf("2.2f = 2.2f\r\n");else  printf("no xiangdeng\r\n");	}

可见,对f1进行判断的时候加一个f才能输出正确的结果。


安规电容

安规电容在电路中用于过滤干扰信号,X电容用于抑制差模干扰,Y电容用于抑制共模干扰 。


数组与指针

对于以下代码,猜猜在存储区一共存储了几个 hello

#include <stdio.h>
#include <stdlib.h>int main()
{char *s1="hello";char *s2="hello";char a1[]="hello";char a2[]="hello";printf("%p %p %p %p",s1,s2,a1,a2);}

其中 *s1 指向的 hello 是一个字符串常量,在静态存储区(静态存储区直到执行结束内存才被回收),s1和s2指向的内容一样所以地址一样。

a1 和 a2是局部变量,放在栈里可以随时修改,所以a1和a2是两个不一样的hello,总的来说看来是变量存储的位置不同从而带来的影响。

a1代表的是数组名也就是数组的地址是地址常量存储在静态存储区,地址常量不能被修改。也就是说 a1++;是错误的,地址上面的数值可以修改,比如 *a1[0] = 'H';是对的。 

s1是一个指针,指针是可以变的,指向的是hello的地址,也可以变成其他字符串的地址。 所以 s1++;是合法的,再次打印 *s1 得到的结果为 "ello" ,字符串常量hello是不能被修改的,比如

*s1[0] = 'H' 会报错。

其中指针和数组占用的内存也不一样。

数组占用的内存为字符个数乘以变量类型字节长度。

指针大小为系统位数除以8 。


二维数组

数据结构 | 二维数组的元素地址。【按行或按列存储】时,行列对换坐标,元素的起始地址保持不变-CSDN博客icon-default.png?t=N7T8https://blog.csdn.net/weixin_52700125/article/details/134883240?ops_request_misc=%257B%2522request%255Fid%2522%253A%2522172407755216800184153816%2522%252C%2522scm%2522%253A%252220140713.130102334..%2522%257D&request_id=172407755216800184153816&biz_id=0&utm_medium=distribute.pc_search_result.none-task-blog-2~blog~sobaiduend~default-2-134883240-null-null.nonecase&utm_term=%E4%BA%8C%E7%BB%B4%E6%95%B0%E7%BB%84%E5%85%83%E7%B4%A0%E7%9A%84%E5%9C%B0%E5%9D%80&spm=1018.2226.3001.4450

元素的地址等于起始地址加上元素在数组中排在元素前面的所有元素所占的内存大小。对于二维数组分为行和列。比如数组定义为a[2][4],那么a[1][1]前面的元素包括a[0][1],a[0][2],a[0][3],a[0][4] 。

二维数组如何进行传参

#include <stdio.h>
#include <stdlib.h>
int get_num(int n,int m,int (*p)[m]);
int main()
{
int a[3][3]={{1,4,7},{3,7,1},{9,4,2}};
int sum ;sum = get_num(3,3,a);
printf("%d\n",sum);
return 0;}数组指针 int (*p)[m]
(*p)代表数组名,[m],代表他每一行有m个列。int get_num (int n,int m,int (*p)[m])
{int sum = 0;int i,j;for(i=0;i<n;i++){for(int j=0;j<m;j++){sum += p[i][j];printf("%d\r\n",*(*(p+i)+j)); //先找行再找列,再取值}	}return sum;	
}

运行结果


指针常量和常量指针

常量指针(本质是指针) 指针指向的地址的内容不能被改变 (可以更改指针指向的地址来改变指针对应的数值)    指向常量的指针 。

指针常量(本质是常量) 指针指向的内容的地址不能被改变 (可以更改指针指向的内容来改变指针对应的数值)    指针本身是个常量 。

常量指针和指针常量的区别_指针常量和常量指针的区别-CSDN博客icon-default.png?t=N7T8https://blog.csdn.net/weixin_46280821/article/details/126652869?ops_request_misc=%257B%2522request%255Fid%2522%253A%2522172407987416800213061084%2522%252C%2522scm%2522%253A%252220140713.130102334..%2522%257D&request_id=172407987416800213061084&biz_id=0&utm_medium=distribute.pc_search_result.none-task-blog-2~blog~top_positive~default-1-126652869-null-null.nonecase&utm_term=%E5%B8%B8%E9%87%8F%E6%8C%87%E9%92%88%E5%92%8C%E6%8C%87%E9%92%88%E5%B8%B8%E9%87%8F&spm=1018.2226.3001.4450


数组指针和指针数组

数组指针与指针数组的区别_数组指针和指针数组的区别-CSDN博客icon-default.png?t=N7T8https://blog.csdn.net/super_demo/article/details/19679053?ops_request_misc=%257B%2522request%255Fid%2522%253A%2522172408134016800222843329%2522%252C%2522scm%2522%253A%252220140713.130102334..%2522%257D&request_id=172408134016800222843329&biz_id=0&utm_medium=distribute.pc_search_result.none-task-blog-2~blog~sobaiduend~default-2-19679053-null-null.nonecase&utm_term=%E6%95%B0%E5%80%BC%E6%8C%87%E9%92%88%E5%92%8C%E6%8C%87%E9%92%88%E6%95%B0%E7%BB%84&spm=1018.2226.3001.4450数组指针    指向一个数组的指针

数组指针经常和二维数组连用。

链表

手撕链表

数据结构之手撕链表(讲解➕源代码)-CSDN博客icon-default.png?t=N7T8https://blog.csdn.net/2302_76941579/article/details/133846023?ops_request_misc=%257B%2522request%255Fid%2522%253A%25225ECE9487-2A28-4479-852E-93DC3E8A40C1%2522%252C%2522scm%2522%253A%252220140713.130102334..%2522%257D&request_id=5ECE9487-2A28-4479-852E-93DC3E8A40C1&biz_id=0&utm_medium=distribute.pc_search_result.none-task-blog-2~all~sobaiduend~default-2-133846023-null-null.142^v100^pc_search_result_base9&utm_term=%E6%89%8B%E6%92%95%E9%93%BE%E8%A1%A8&spm=1018.2226.3001.4187

#include <stdio.h>typedef int datatype;//定义结构体
/*您提供的代码片段是一个C语言中的结构体定义,使用了`typedef`关键字来
定义一个结构体类型`listnode`和一个指向该结构体的指针类型`linklist`。
这种定义方式在数据结构中常用,特别是在处理链表时,可以简化代码中的类型
声明。结构体`listnode`包含两个成员:一个整型数据`data`和一个指向下一个
`listnode`结构体的指针`next`。通过`typedef`关键字,`listnode`成为
了结构体类型的别名,而`linklist`成为了指向该结构体的指针类型的别名。
这样,在后续的代码中,可以直接使用`listnode`和`linklist`来声明变量,
而不需要每次都写出完整的结构体类型和指针类型。这种定义方式在C语言中是合法的,并且是一种常见的编程技巧,
用于提高代码的可读性和可维护性.*/typedef struct node{
int data;
struct node *next;
}listnode,*linklist;linklist list_create();//列表创建函数
int head_insert(linklist H,datatype data);//列表头部插入函数 
int list_show(linklist H);//列表遍历打印函数int main(){linklist H;if ((H = list_create()) ==NULL ){ return 0;}	head_insert(H, 50);head_insert(H, 50);head_insert(H, 100);head_insert(H, 20);head_insert(H, 50);list_show(H);return 0;		
}linklist list_create()
{linklist H;if((H = (linklist)malloc(sizeof(listnode))) == NULL){return H;}	H->data = 0;H->next = NULL;return H;	
}
//没有释放掉申请的内存,需要注意
int head_insert(linklist H,datatype data)
{   linklist p;if(H == NULL) {return -1;}if((p = (linklist)malloc(sizeof(listnode))) == NULL){ printf("malloc failed");return -1;}p->data = data;p->next = H ->next;H->next = p;return 0;
}int list_show(linklist H)
{if(H == NULL || H ->next == NULL){return -1;}H = H->next;while(H != NULL){//最后一个链表节点的指针为NULLprintf("%d\r\n",H->data);H = H->next;}printf("\n");return 0;
}

实验现象


对结构体指针指向的字符串进行修改的放法

指针与字符串-CSDN博客icon-default.png?t=N7T8https://blog.csdn.net/qq_43680827/article/details/122929776?ops_request_misc=%257B%2522request%255Fid%2522%253A%2522172416196116800182767696%2522%252C%2522scm%2522%253A%252220140713.130102334.pc%255Fall.%2522%257D&request_id=172416196116800182767696&biz_id=0&utm_medium=distribute.pc_search_result.none-task-blog-2~all~first_rank_ecpm_v1~rank_v31_ecpm-4-122929776-null-null.142%5Ev100%5Epc_search_result_base9&utm_term=%E5%AD%97%E7%AC%A6%E4%B8%B2%E5%92%8C%E6%8C%87%E9%92%88&spm=1018.2226.3001.4187直接对指针定义结构体,指针指向的是存放在静态存储区的字符串的地址,

对结构体指针指向的字符串直接进行修改失败的原因也是静态存储区的常量不能被修改

比如 s1.name[0] = 'H' ;  是错误的 。 

自己申请一段堆上的空间

并不是实现对精彩存储区常量的修改,而是实现了申请内存的方法修改结构体指针指向的存在堆区的字符串的内容。所以结构体指针指向的字符串还是不能直接定义,需要用其他方法,原因还是直接定义就是定义静态常量不能修改。

#include <stdio.h>
#include <string.h>
#include <stdlib.h>
#define N   50struct student{int num;char *name;	
};int main(){
struct student s1 ={1,"guangtouqiang"};	
struct student s2;
s2.num = 2;//s1.name[0] = 'G';if((s2.name = malloc(N*sizeof(char))) == NULL) { return 0;}//s2.name = "xiongda";
strcpy(s2.name,"xiongda");
s2.name[0] = 'X';printf("%d   %s\r\n",s1.num,s1.name);
printf("%d   %s\r\n",s2.num,s2.name);free(s2.name);
s2.name == NULL;		
}

相关文章:

进阶 pro max

最近搞了许多有趣的东西&#xff0c;比如自制rtos&#xff0c;速成数模电&#xff0c;学了一点点的AD&#xff0c;看着视频弄了HAL库&#xff0c;以及定时器和串口中断配合实现接收任意长度&#xff08;不超过缓冲值&#xff09;数据&#xff0c;还有配置hal库的freertosfafts …...

Agentic Security:一款针对LLM模型的模糊测试与安全检测工具

关于Agentic Security Agentic Security是一款针对LLM模型的模糊测试与安全检测工具&#xff0c;该工具可以帮助广大研究人员针对任意LLM执行全面的安全分析与测试。 请注意 Agentic Security 是作为安全扫描工具设计的&#xff0c;而不是万无一失的解决方案。它无法保证完全防…...

Spring Cloud Config 与 Spring Cloud Bus 来实现动态配置文件

要使用 Spring Cloud Config 与 Spring Cloud Bus 来实现动态配置文件&#xff0c;你可以按照以下步骤操作&#xff1a; ### 步骤 1: 添加依赖 首先&#xff0c;确保你的项目中添加了 Spring Cloud Config 客户端和 Bus 的依赖。对于 Maven 项目&#xff0c;pom.xml 文件应该…...

Qt:Qt背景

目录 1.Qt解释 2.Windows下开发GUI的方案 3.框架 4.Qt历史 4.Qt支持的平台 5.Qt版本 6.Qt案例 1.Qt解释 前端开发&#xff0c;分为网页前端开发&#xff08;Web)、桌面应用开发&#xff08;Windows、Linux&#xff09;、移动应用开发&#xff08;Android&#xff09;。Q…...

【数据结构】选择排序

&#x1f36c;个人主页&#xff1a;Yanni.— &#x1f308;数据结构&#xff1a;Data Structure.​​​​​​ &#x1f382;C语言笔记&#xff1a;C Language Notes &#x1f3c0;OJ题分享&#xff1a; Topic Sharing 目录 前言&#xff1a; 基本思想 直接选择排序 思路分…...

国产GD32单片机开发入门(二)GD32单片机详解

文章目录 一.概要二.单片机型号命名规则三.GD32F103系统架构四.GD32F103C8T6单片机启动流程五.GD32F103C8T6单片机主要外设资源六.单片机开发过程中查看芯片数据手册的必要性1.单片机外设资源情况2.GD32单片机内部框图3.GD32单片机管脚图4.GD32单片机每个管脚功能5.单片机功耗数…...

8个我平时每天都会看的网站,涵盖办公、娱乐、学习等

分享8个我平时每天都会看的网站&#xff0c;涵盖办公、娱乐、学习等多种类别&#xff0c;试过就知道有多好用&#xff01; 1、MyFreeMP3 tools.liumingye.cn/music/#/ 一个可以免费听歌的平台&#xff0c;不用充会员&#xff0c;里面收录了大多数的国内外知名流行歌手、乐队的…...

Vue2——父子之间间的调用

1、父组件给子组件传值使用props 父组件&#xff1a; <div><SonPage msg"通过props传递值---父>子" ></SonPage><h1>父组件</h1></div> 子组件 <div :style"{border: 1px solid red}"><h1>子组件…...

xfs Vs ext4?

xfs测试 ext4 测试 对比 XFS和EXT4都是Linux系统中广泛使用的文件系统&#xff0c;它们各有特点和优势&#xff0c;选择哪一个取决于你的具体需求和使用场景。下面是它们的主要特点&#xff1a; XFS: 由Silicon Graphics Inc.开发&#xff0c;最初用于SGI的IRIX系统。支持非…...

数据结构stack (笔记)

文章目录 1. 概念理解易混淆内容 2. 时间复杂度3. 实现方式4. 应用5. 内容出处 1. 概念理解 stack(中文名&#xff1a;堆栈、栈)&#xff1a;虽然它叫堆栈&#xff0c;但是它其实指的是栈&#xff0c;跟堆没啥关系。 栈的特性&#xff1a;先进后出、后进先出(这个过程就…...

SQL - 创建 表和数据库

创建和删除数据库 create database if not exists sql_store2; //创建 drop database if exists sql_store2; //删除 -- 创建数据库 create database if not exists sql_store2; drop database if exists sql_store2; 创建表 create table customers (someting); -- 创建表 cre…...

使用 Arch Linux 几个月有感 | 为什么我选择 Arch Linux ,Arch 的优缺点有什么 | 一些Linux发行版推荐

&#xff08;终端是 Yakuake &#xff0c;KDE 自带&#xff09; 一点碎碎念&#xff0c;可以跳过不看 几年前从 CentOS 接触的 Linux &#xff0c;试图搭建一个KMS服务器 但是失败了 &#xff0c;后来装过 Ubuntu Debian deepin Kali Kubuntu Manjaro&#xff0c;踩一路坑最后…...

SQLserver中的增删改查和数据类型

SQLserver增删查改语句 SQL Server 是一种关系数据库管理系统&#xff0c;用于存储、管理和检索数据。以下是一些基本的 SQL 语句&#xff0c;用于在 SQL Server 中执行增删查改操作&#xff1a; 插入数据&#xff08;Insert&#xff09; 插入完整行&#xff1a; INSERT INTO …...

个人收藏个性化、实用性、可玩性在线网站持续更新,与君共享

1.https://handraw.top/ 支持中文手绘效果的白板工具&#xff0c;比较怀旧复古风格 界面简单风 2.https://app.diagrams.net 流程图、UML图、网络图、组织结构图、思维导图等&#xff0c;比较专业 可导出图片 PDF HTLM等各种格式 3.https://www.processon.com 主要用于生成…...

win10蓝牙只能发送,无法接收

给win10升了级&#xff0c;到22H2&#xff0c;蓝牙出了问题 以前接收&#xff0c;就是默认直接就可以接收。现在只能发送&#xff0c;无法接收。 在网上找了很多办法都没奏效&#xff0c;目前的方法是&#xff0c; 每次接收&#xff0c;都要操作一次&#xff0c;而不是自动接…...

【论文阅读03】用于海洋物体检测的多注意力路径聚合网络

来源&#xff1a;用于海洋物体检测的多注意力路径聚合网络 |应用智能 (springer.com) 一、背景&#xff1a; 水下图像存在偏色、对比度低、能见度低等问题&#xff0c;使得海洋物体难以被探测到。这些都增加了海上目标探测的难度。 目前流行的检测器方法是基于卷积神经网络&…...

Linux 进程(2)

进程的回收 1.wait 原型 pid_t wait(int *status); 功能&#xff1a;该函数可以阻塞等待任意子进程退出 并回收该进程的状态。 一般用于父进程回收子进程状态。 参数&#xff1a;status 进程退出时候的状态 如果不关心其退出状态一般用NULL表示 如果要回收进程…...

[CSCCTF 2019 Qual]FlaskLight1

打开题目 右键查看一下源代码 看到提示&#xff0c;需要用GET方search函数...

layui table表单 checkbox选中一个其它也要选中

当我们选中其中一个商品的时候同类型的商品状态也要跟着改变 所以要在表单加载完成后去监听checkbox ,done:function (res) {console.log(详情表格数据,res)tableDetailList res.data;// 监听表格复选框选择table.on(checkbox( INST_SELECTORS.instLayFilters.unpaidTableDe…...

【pip镜像设置】pip使用清华镜像源安装

文章目录 问题&#xff1a;问题描述原因分析&#xff1a;PyPI&#xff08;Python Package Index&#xff09; PypI 镜像列表解决方案&#xff1a; 问题&#xff1a; 大家经常会使用 pip 进行python 的第三方库安装&#xff0c;但是&#xff0c;有时会出现 ERROR: Could not f…...

c++ 智能指针--std::shared_ptr

在C中&#xff0c;std::shared_ptr是智能指针的一种&#xff0c;它用于自动管理具有动态生命周期的对象。当std::shared_ptr的实例被销毁或重置时&#xff0c;它所指向的对象&#xff08;如果仍然存在&#xff09;将被自动删除&#xff08;调用delete&#xff09;&#xff0c;前…...

网络工程师学习笔记(二)

计算机网络概述——二 通信子网中转发节点的互联模式叫做子网的拓扑结构 常见的拓扑结构&#xff1a; 总线型(一条总干线上连接着多个终端) 特点&#xff1a;损坏一个节点会造成单点故障 星型&#xff08;中间一台服务器或者一各小型工作站周围都是计算机&#xff09; 特点…...

90.WEB渗透测试-信息收集-Google语法(4)

免责声明&#xff1a;内容仅供学习参考&#xff0c;请合法利用知识&#xff0c;禁止进行违法犯罪活动&#xff01; 内容参考于&#xff1a; 易锦网校会员专享课 上一个内容&#xff1a;89.WEB渗透测试-信息收集-Google语法&#xff08;3&#xff09; • inurl • 搜索特殊 UR…...

阿里Qwen2开源大模型本地部署及调试全攻略

阿里Qwen2开源大模型本地部署及调试全攻略 #Qwen2系列大模型性能卓越&#xff0c;超越业界知名模型。开源后受到AI开发者关注&#xff0c;支持多种语言&#xff0c;提升多语言理解。在预训练和微调上优化&#xff0c;实现智能水平提升。Qwen2系列模型在各项能力上均领先&#…...

『功能项目』移动后的光标显示【04】

我们打开上一篇03的射线双击项目&#xff0c; 本章要做的事情是在PlayerRayNavgation脚本中添加一个移动光标&#xff0c;实现人物在场景中鼠标点击移动后在移动过程中出现移动目标光标的效果。 在unity编辑器中创建一个Plane 重命名为MovementSign 删掉碰撞器 创建一个材质 选…...

HTML 基本语法特性与 title 标签介绍

目录 title标签 HTML 的基本语法特性 对换行和缩进不敏感 空白折叠现象 标签要严格封闭 title标签 在 HTML 中&#xff0c;<title>标签起着至关重要的作用&#xff0c;它主要用于定义文档的标题。通常情况下&#xff0c;<title>标签被放置在<head>标签内…...

CSS的:placeholder-shown伪类:精确控制输入框占位符样式

CSS&#xff08;层叠样式表&#xff09;是控制网页元素样式的强大工具。随着Web开发技术的进步&#xff0c;CSS不断引入新的选择器和伪类&#xff0c;以增强开发者对页面元素的控制能力。:placeholder-shown伪类是CSS中一个相对较新的特性&#xff0c;它允许开发者针对输入字段…...

Java之HashMap的底层实现

Java之HashMap的底层实现 摘要HashMap的底层原理哈希值转换为数组下标节点初始化put(Object key, Object value)重写toString()get(Object key)增加泛化remove(K key) 摘要 本博客主要讲述了Java的HashMap的底层实现 HashMap的底层原理 底层原理&#xff1a;数组链表 过程…...

多张图片进行模型重建并转换为OBJ模型

前提条件&#xff1a; 需要安装OpenCV库和Eigen库&#xff08;用于矩阵运算&#xff09;。你需要对计算机视觉和3D建模有一定了解。 步骤概述&#xff1a; 使用OpenCV进行图像处理和特征提取。使用OpenCV进行相机标定和图像对齐。使用重建算法&#xff08;如SIFT、SURF&#xf…...

信息安全保证人员CISAW:安全集成

信息安全保障人员认证(CISAW)在安全集成领域的认证&#xff0c;主要针对申请者在信息系统安全集成的知识和理论以及项目实施中的综合应用能力进行全面评估。 这一认证特别强调对申请者在安全集成方面的知识深度和利用这些知识分析、解决实际问题的能力的评价。 此外&#xff…...

建设网站的提成是多少/百度营销后台

邮件列表每天都能让我学到新东西&#xff0c;感谢他&#xff01;有朋友问PREEMPT_ACTIVE有什么用&#xff0c;我给出了最简单的回答&#xff0c;就是避免被抢占的进程被无情的赶出运行队列。这个回答显然不能让那位朋友满意... 进程一旦调用了schedule&#xff0c;如果再次被调…...

优秀个人网站图片/推广技术

第一款面向大众的java版的视频管理系统。妖气山视频管理系统理论上可以制作任何类型的视频网站。源码地址&#xff1a;源码下载地址: https://gitee.com/javaex/yaoqishan下面是mysql版本: https://github.com/user-xiangpeng/yaoqishan软件架构前端&#xff1a;javaex后端&…...

wordpress设置文件大小/百度地图在线使用

ASP.NET MVC的页面跳转 当我们在使用ASP.NET MVC实现页面跳转的时候&#xff0c;常用的应该是&#xff1a; RedirectRedirectToActionRedirectToRoute或者在前台使用脚本跳转。 但这几种跳转方式都是基于Get请求的&#xff0c;在某些特定场景下可能并不适用。例如需要传递大数据…...

男女做爰网站19/乔拓云智能建站系统

介绍如何使用机密消息解码器 检查Visual Studio Code是否已准备好执行消息解码 在计算机上创建用于代码的文件玩意儿。文件夹命名为Sleuth。 鼠标放在Sleuth文件夹&#xff0c;右键点击“在终端中打开”。 输入命令行&#xff1a; 打开Visual Studio Code 创建文件&#xff0c;…...

微信网站平台建设/网站建设高端公司

1.C中类与结构的唯一区别是&#xff1a;类&#xff08;class&#xff09;定义中默认情况下的成员是private的&#xff0c;而结构&#xff08;struct&#xff09;定义中默认情况下的成员是public的。 2. ::叫作用域区分符&#xff0c;指明一个函数属于哪个类或一个数据属于哪个类…...

辽宁省人民政府网站官网/营销策划推广公司

在我们用pl/sql的Tools导出用户对象时&#xff0c;例如导出一个表&#xff0c;则导出的t_test.sql的前几行如下&#xff1a; spool test.log prompt prompt Creating table t_test prompt prompt 这里的prompt的作用相当于一般的操作系统命令echo&#xff0c;输出后面的信…...