嵌入式学习记录14

一:string.h

1.strncpy

char *strncpy(char *dest, const char *src, size_t n)

定义一个 char * 类型的函数;其中dest为复制到这个地址,src为要复制的目标;n为复制src的前n 个;

 n < strlen(src)         只拷贝前n个字符,没有完全复制,没有到达'\0';最终dest中不会有  '\0'  

 n == strlen(src)     正常拷贝 

 n > strlen(src)         如果  n  拷贝够了次数  把src全部拷完,到达‘\0’ ;    剩余拷贝 统统补0;

                                也就是 当   *src == '\0'  时  还有剩余,后面全部补 0 ;

2.strncat

char *strncat(char *dest, const char *src, size_t n)

定义一个 char * 类型的函数;其中dest为拼接到这个后面,src为要在后面拼接的后续字符串;n为拼接  src  的前n 个;

 n < strlen(src)      把src 的前 n 个 续接到dest后面,注意要覆盖dest后面的'\0',从dest的最后一个字符开始,覆盖 '\0',拼接完成后再在最后加'\0';

 n >= strlen(src)   src拼完就结束  当  src=='\0'  时结束拼接;

3.Strncmp   

 int Strncmp(const char *s1, const char *s2, size_t n)

定义一个int 型的函数;其中 s1 和 s2 均被 const 为只读,不能被修改;比较s1与s2 的前n 个字符;

二:指针 + 函数 

1.回调函数: 

通过函数指针调用的函数 叫回调函数  

回调函数时,一般是主函数调其他定义的函数,而其他那些被定义的函数一般都留有接口;

1.2快速排序:

void qsort(void *base, size_t nmemb, size_t size,int (*compar)(const void *, const void *));

定义为一个空类型的函数,方便后续定义为其他类型函数;其中

void *   为万能指针   ;可以接收任意类型的指针   

                                      如果通过该类型的地址进行数据访问 一定要转换为 明确类型 

base 为数组起始位置;数组首元素<=>数组名;一般直接写数组名

nmemb 为要排序的元素个数;就是要排序的那些东西 的个数,

size 为单个元素的大小;要排序的那些东西的单个的 大小,一般直接在外面sizeof(单个元素);

如一维数组的话 sizeof(a[0]) ;  二维数组sizeof(a[0]):确定第一排的元素大小,sizeof(a[0][0])确定第一排第一个的元素大小;看你要比较那个,如字符串的话就用a[0],单个数字或字符或字符的话就用a[0][0];而第二行的话,就要取地址sizeof(*(a+1));

compare 为比较函数;这个函数需要自己进行确定,看你要怎么进行比较;字符串一般可以调用string.h;此处compare为指针函数;

1.3 compare

 int compar(const void *a, const void *b)   //回调函数

{

        *(const int *)a - *(const int *)b     ;

}

比较不可修改的两个值; compar 两个参数 是 数组中某两个元素的地址 

 compar 返回值 表示的就是数组中两个元素的大小关系 

1.4函数指针 与 指针函数

函数指针 -- 函数的指针  --- 函数类型的 指针 (直接指向别的函数:int (*函数名));

指针函数 -- 指针的函数  --- 返回值为指针类型 的函数 (int * 函数名)

三:指针 + 二维数组 :

int a[3][4];        //    本质还是一维数组  可以写成:

int[4] a[3];   数组名为a 也代表首元素地址a[0],a[0]的类型为 Int [4]型;

&a[0]   对应的   数据类型为int (*)[4];

int (*p)[4] = a;  *p 相当于 是 int[4]这种类型 的 数组

                        *p 就相当于 int[4]这个数组的 数组名

*(*(p+i) + j)<=>a[i][j]   

p==a[0]相当于 a[i]的第一层或第一片(也就是a[0])的地址;这个地址代表了  [ j ] (0到j) 这一片;

(p+i)则是确定在第几层的地址*(p+i)则是走到第几层进入里面  同样也是这一层里面的首地址 ;同样拥有 [ j ] 这一排片;

[ j ]则代表了某一层所有的元素个体;从0到j;



 

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

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

相关文章

spark-cannot resolve overloaded method

使用split方法&#xff0c;出现错误&#xff1a;cannot resolve overloaded method 解决方法:那个regex应该是自动生成&#xff0c;所以split括号中输入空引号即可。 入门学习人的愚笨&#xff0c;也要继续坚持&#xff0c;加油&#xff01;

解决npm安装phantomjs失败

失败信息 Progress: resolved 102, reused 102, downloaded 0, added 0, done .pnpm/phantomjs2.1.7/node_modules/phantomjs: Running install script, failed in 21.3s .../node_modules/phantomjs install$ node install.js │ PhantomJS not found on PATH │ Downloading…

消息中间件之RocketMQ源码分析(三)

RocketMQ中的Consumer启动流程 RocketMQ客户端中有两个独立的消费者实现类分别为DefaultMQPullConsumer和DefaultMQPushConsumer&#xff0c; DefaultMQPullConsumer DefaultMQPullConsumer,该消费者使用时需要用户主动从Broker中Pull消息和消费消息&#xff0c;提交消费位点…

vue-router 实现页面路由

vue-router介绍 vue 的官方路由组件 功能包括 嵌套路由映射动态路由选择模块化、基于组件的路由配置路由参数、查询、通配符HTML5 的 history 模式 和 hash 模式 vue-router使用 结合 tabs 组件&#xff0c;实现页面路由 安装 vant-ui 实现底部导航栏 Tabbar-CSDN博客 重点…

图的学习

图的基本概念和术语 图的定义&#xff1a;图是由顶点的有穷非空集合和顶点之间的边的集合组成的&#xff0c;G表示&#xff0c;V是图G中顶点的集合&#xff0c;E是图G中边的集合 无向图&#xff1a;任意两点的边都是无向边组成的图&#xff08;无向边&#xff1a;&#xff08…

R高级绘图 | P1 | 带边缘分布散点图 | 代码注释 + 结果解读

新系列 —— R高级绘图&#xff0c;准备整理所有曾经绘制过的图图和未来需要的图图们的代码&#xff01;预计这个系列会囊括所有常见图形&#xff0c;只提供高级绘图代码&#xff0c;基础绘图主要在 R语言绘图 系列中进行介绍&#xff0c;这个系列咱们主打&#xff1a;需要XX图…

MySQL 常用函数学习总结

1、数值函数 ➢ 数学计算 ○ ABS(x) 返回x的绝对值 SELECT ABS(-2);○ EXP(x) 返回 e 的 x 次方 SELECT EXP(2); ○ LN 返回数字的自然对数 SELECT LN(2); ○ OG(x) 返回自然对数(以 e 为底的对数) SELECT LOG(20.085536923188); ○ POW(x,y)/POWER(x,y) 返回 x 的 y …

Redis拒绝连接的原因与解决方式

Redis拒绝连接的原因与解决方式 在某些情况下&#xff0c;当尝试从外部计算机连接到运行在保护模式下的Redis服务器时&#xff0c;您可能会遇到如下的错误信息&#xff1a; Caused by: org.redisson.client.RedisException: DENIED Redis is running in protected mode becau…

【Web前端实操21】商城官网_白色导航

今日份实现白色导航栏部分&#xff0c;也就是第三部分&#xff0c;效果如图中划线所示&#xff1a; 本次实现代码如之前的全局样式不再赘述&#xff0c;如有需要可以去我博客的Web前端实操19或者20自行查看。 本次主要更新mi.css和index.htm。 实现导航栏所需要的CSS样…

2015年苏州大学837复试机试C/C++

2015年苏州大学复试机试 第一题 题目 有36块砖&#xff0c;现在有36个人&#xff0c;男人能搬4块&#xff0c;女人能搬3块&#xff0c;小孩子两人搬一块&#xff0c;求一次搬完这些砖要男人&#xff0c;女人&#xff0c;小孩多少人&#xff1f; 代码 #include <iostrea…

仰暮计划|“那时候在生产队下面,集体干活,吃大锅饭,由队里分粮食,吃不饱饭是常事,队里分的粮食就那么点,想要吃饱真的太难了”

希望未来的中国越来越好&#xff0c;大家的生活也越来越好 老人是1955年在河南省洛阳市洛宁县的一个小山村里出生的&#xff0c;前半辈子为了生活&#xff0c;为了孩子而打拼&#xff0c;虽然经历了不少的苦难&#xff0c;但后半辈子也算是苦尽甘来&#xff0c;生活美满。现在就…

LeetCode-1483. 树节点的第 K 个祖先

原题链接&#xff1a;LeetCode-1483. 树节点的第 K 个祖先 题面 给你一棵树&#xff0c;树上有 n 个节点&#xff0c;按从 0 到 n-1 编号。树以父节点数组的形式给出&#xff0c;其中 parent[i] 是节点 i 的父节点。树的根节点是编号为 0 的节点。 树节点的第 k 个祖先节点是从…

《Is dataset condensation a silver bullet for healthcare data sharing?》

一篇数据浓缩在医疗数据集应用中的论文。 其实就是在医疗数据集上使用了data condensation的方法&#xff0c;这里使用了DM的方式&#xff0c;并且新增了浓缩时候使用不同的网络。 1. 方法 数据浓缩DC的目的是&#xff1a; E x ∼ P D [ L ( φ θ O ( x ) , y ) ] ≃ E x ∼…

【Vue3+Vite】Vue3视图渲染技术 快速学习 第二期

文章目录 一、模版语法1.1 插值表达式和文本渲染1.1.1 插值表达式 语法1.1.2 文本渲染 语法 1.2 Attribute属性渲染1.3 事件的绑定 二、响应式基础2.1 响应式需求案例2.2 响应式实现关键字ref2.3 响应式实现关键字reactive2.4 扩展响应式关键字toRefs 和 toRef 三、条件和列表渲…

考研高数(共轭根式)

1.定义 共轭根式&#xff1a;是指两个不等于零的根式A、B&#xff0c;若它们的积AB不含根式&#xff0c;则称A、B互为共轭根式。 共轭根式的一个显著特点是通过相乘能把根号去掉&#xff0c;这是很有帮助的 2.常用的共轭根式 3.例题 1&#xff09;求极限 2&#xff09;证明…

常见分类网络的结构

VGG16 图片来自这里 MobilenetV3 small和large版本参数,图片来着这里 Resnet 图片来自这里

C++(8) 运算符重载

文章目录 运算符重载1.1 运算符概述1.2 运算符 重载1.3 运算符 << 重载 运算符重载 1.1 运算符概述 针对当前程序中常用的运算符&#xff0c;可以实现目标运算符处理当前数据类型的方式修改 需求&#xff1a; "ABCD" "BDC" > "ABCDBDC&qu…

长度最小的子数组(c++题解)

题目描述 给定一个含有 n 个正整数的数组和一个正整数 target 。 找出该数组中满足其和 ≥ target 的长度最小的 连续子数组 &#xff0c;并返回其长度。如果不存在符合条件的子数组&#xff0c;返回 0 。 输入格式 第一行输入两个整数n 和 target 第二行输入包含有n个元…

【Deep Dive: AI Webinar】数据合作和开源人工智能

【深入探讨人工智能】网络研讨系列总共有 17 个视频。我们按照视频内容&#xff0c;大致上分成了 3 个大类&#xff1a; 1. 人工智能的开放、风险与挑战&#xff08;4 篇&#xff09; 2. 人工智能的治理&#xff08;总共 12 篇&#xff09;&#xff0c;其中分成了几个子类&…

课程表分析

课程表分析 class Course(models.Model):name models.CharField(max_length64)title models.CharField(max_length64)students models.IntegerField(default0)level models.IntegerField(choices((0, 入门), (1, 进阶)), default0)time models.IntegerField(default0)det…