嵌入式学习第十三天

news2024/10/6 8:39:37

9.指针:

(1)const指针
         const 关键字   常量(只读)

    1.const int *p;
    2.int const *p;

    1和2是等价的
    const修饰 *p,指针变量p的值可以改变,但不能利用指针修改指向空间中的值


    3.int *const p;
    const修饰 p,指针变量p的值不能改变,但可以利用指针变量p修改指向空间中的值
    一定要对指针初始化


    4.const int *const p;
    5.int const *const p;

    4和5是等价的
    const修饰p和*p,指针变量p的值不能改变,也不能利用*p改变直系那个空间中的值

2.void
    void a;


    int *、double *、char * 转换为 void * 需要强制类型转换(高精度转为低精度)
    void *转换为int *、double *、char *不需要强制类型转换(低精度转为高精度)

    strcpy 拷贝字符串
    memcpy 拷贝一段内存空间

10.函数指针和指针函数:

指针函数:是函数,函数的返回值类型是指针类型
函数指针:是指针,指针指向了函数

(1)指针函数:
        局部变量的地址不能返回,因为局部变量会随函数作用域结束被回收,虽然能够获得返回的地            址,但地址对应的空间已经被回收过了

        将函数的返回值作为下一个函数的参数

(2)函数指针:
        int (*Fun)(int a, int b) = NULL;
        定义函数指针变量Fun,占8个字节空间,指向int返回值有2个int参数的函数

11.C语言中二级指针使用场景:


(1)指针数组传参时:
        char *str[5];

        int Fun(char **ppstr, int len);


(2)函数体内想修改函数体外指针变量值的时候,要传递指针变量的地址即二级指针
        char *p = NULL;

        int Fun(char **pp);

构造数据类型

数据类型:
(1)基本数据类型:
            int 
            double 
            char 
(2)构造数据类型:
            1.struct 结构体
            2.union 共用体
            3.enum  枚举

1.结构体:


(1)结构体类型的定义
        struct 结构体名 
        {
            数据类型1 成员变量1;
            数据类型2 成员变量2;
            数据类型3 成员变量3;
            ..
        };

(2)结构体变量的定义
        数据类型 变量名;
        数据类型 *指针变量名;


(3)结构体变量的初始化:
        1.全部初始化:
            struct student s = {"zhangsan", 'm', 19, 100};

        2.局部初始化:
            struct student stu = {
                .name = "lisi",
                .score = 90,
            };  

(4)结构体成员变量的访问:
        .   :结构体变量类型访问成员变量使用 .
        ->  :结构体指针类型访问成员变量使用 -> 

        整体类型由成员变量类型决定

#include <stdio.h>

struct student 
{
	char name[32];
	char sex;
	int age;
	int score;
};

struct time 
{
	int hour;
	int min;
	int sec;
};

struct date 
{
	int year;
	int mon;
	int day;
};

struct datetime 
{
	struct date day;
	struct time t;
};


int main(void)
{
	struct student s = {"zhangsan", 'm', 19, 90};
	struct student *p = NULL;
	struct datetime dt = {{2024, 1, 29}, {15, 51, 30}};
	struct datetime *pdt = NULL;
	struct student stu = {
		.name = "lisi",
		.score = 100,
	};

	struct datetime now = {
		.day = {
			.year = 2024,
			.day = 29,
		},
		.t = {
			.hour = 16,
			.min = 34,
		},
	};
	
	printf("姓名:%s\n", s.name);
	printf("性别:%c\n", s.sex);
	printf("年龄:%d\n", s.age);
	printf("成绩:%d\n", s.score);

	printf("姓名:%s\n", (&s)->name);
	printf("性别:%c\n", (&s)->sex);
	printf("年龄:%d\n", (&s)->age);
	printf("成绩:%d\n", (&s)->score);
	
	p = &s;
	printf("姓名:%s\n", p->name);
	printf("性别:%c\n", p->sex);
	printf("年龄:%d\n", p->age);
	printf("成绩:%d\n", p->score);

	printf("姓名:%s\n", (*p).name);
	printf("性别:%c\n", (*p).sex);
	printf("年龄:%d\n", (*p).age);
	printf("成绩:%d\n", (*p).score);
	
	printf("%d-%d-%d %d:%d:%d\n", dt.day.year, dt.day.mon, dt.day.day, dt.t.hour, dt.t.min, dt.t.sec);

	pdt = &dt;
	printf("%d-%d-%d %d:%d:%d\n", pdt->day.year, pdt->day.mon, pdt->day.day, pdt->t.hour, pdt->t.min, pdt->t.sec);

	return 0;

}

作业:

1.定义一个结构体包含年-月-日三个成员
        struct date 
        {
            int year;
            int mon;
            int day;
        };
        从终端接收年月日信息存放到结构体中,计算该天为该年的第几天?计算该年剩余多少天?打印年月日信息
    


2.封装一个函数,给定一个数字字符串转换成其对应的整形数
        "123456"
         123456 

         int MyAtoi(char *pstr);

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

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

相关文章

幻兽帕鲁越玩越卡,内存溢出问题如何解决?

近期幻兽帕鲁游戏大火&#xff0c;在联机组队快乐游玩的同时&#xff0c;玩家们也发现了一些小问题。由于游戏有随机掉落材料的设定&#xff0c;服务器在加载掉落物的过程中很容易会出现掉帧、卡顿的情况。某些玩家甚至在游戏1&#xff5e;2时后就出现服务器崩溃的情况&#xf…

招聘网站简单爬虫_24.1.26

完整程序传送门 24.1.26 前些天接了一个大两届的师兄的小活&#xff0c;做了一下爬boss直聘岗位信息的程序&#xff0c;在这里记录一下 程序框架 定义一个名为paQu的接口函数&#xff0c;用于检查窗口的输入&#xff0c;它接受一个参数self&#xff0c;获取self对象的a属性&am…

服务攻防-开发框架安全SpringBootStruts2LaravelThinkPHPCVE复现

知识点&#xff1a; 1、PHP-框架安全-Thinkphp&Laravel 2、J2EE-框架安全-SpringBoot&Struts2 章节点&#xff1a; 1、目标判断-端口扫描&组合判断&信息来源 2、安全问题-配置不当&CVE漏洞&弱口令爆破 3、复现对象-数据库&中间件&开发框架&am…

Python爬虫请求库安装

请求库的安装 爬虫可以简单分为几步&#xff1a;抓取页面、分析页面和存储数据。 在抓取页面的过程中&#xff0c;我们需要模拟浏览器向服务器发出请求&#xff0c;所以需要用到一些 Python 库来实现 HTTP 请求操作。在本教程中&#xff0c;我们用到的第三方库有 requests、S…

基于vue实现待办清单案例

一、需求 新增内容&#xff1b; 删除内容&#xff1b; 统计操作&#xff1b; 清空数据。 示例图&#xff1a; 二、代码演示 1、基础准备 index.css代码 html, body {margin: 0;padding: 0; } body {background: #fff ; } button {margin: 0;padding: 0;border: 0;backgr…

BF16与FP16的区别

参考 BF16 与 FP16 在模型上哪个精度更高呢BF16 与 FP16 在模型上哪个精度更高呢【bf16更适合深度学习计算&#xff0c;精度更高】&#xff1a; 两者差异图示如下&#xff1a; BF16 是对FP32单精度浮点数截断数据&#xff0c;即用8bit 表示指数&#xff0c;7bit 表示小数。…

微博怎么把客户引流到私域?(引流技巧)

微博 1&#xff09;背景banner图 在微博主页顶部的背景图里&#xff0c;可以引导添加个人微信、公众号等信息&#xff0c;通常配合福利引导用户添加。 2&#xff09;个人简介 微博中比较常见的引流方式&#xff0c;可以直接在简介区内留下微信号、公众号名称、邮箱等信息&#…

差异性分析汇总

在做科研写论文的时候&#xff0c;我们总会听说要对数据进行差异性分析&#xff0c;那么何为差异性分析&#xff1f;差异性分析常用的方法有哪些&#xff1f;这些方法应该如何进行分类&#xff1f;如何选择&#xff1f;差异性分析的数据格式是怎么样的&#xff1f;软件如何操作…

MarkDown快速入门-以Obsidian编辑器为例

直接上图&#xff0c;左右对应。 首先是基础语法。 # 标题&#xff0c;几个就代表几级标题&#xff1b;* 单个是序号&#xff0c;两个在一起就是斜体&#xff1b;- [ ] 代表任务&#xff0c;注意其中的空格&#xff1b; 然后是表格按钮代码 | 使用中竖线代表表格&#xff0c…

Bean的注入方法和区别

Bean有几种注入方式&#xff1f;它们有什么区别&#xff1f; Bean对象中有以下几种注入方式&#xff1a; 属性注入Setter注入构造方法注入 属性注入 属性注入是我们最熟悉的&#xff0c;也是日常开发最常使用的一种注入方式&#xff0c;它的实现代码如下&#xff1a; Rest…

HTML小白入门学习-表单标签

一、前言 HTML标签千千万&#xff0c;要学习的占一半。上篇文章中我们学习了列表标签&#xff0c;针对有序列表、无序列表、自定义列表和嵌套列表进行简单的学习了解和实操。本篇文章将为大家介绍另一种常用标签&#xff0c;那就是表单类标签。 我们在网页中经常会看到表单的…

JavaScript版数据结构与算法(二)图、堆、搜索排序算法、算法设计思想

一、图 &#xff08;一&#xff09;图是什么 图是网络结构的抽象模型&#xff0c;是一组由边连接的节点。图可以表示任何二元关系&#xff0c;比如道路、航班… JS中没有图&#xff0c;但是可以用 Object 和 Array 构建图。图的表示法&#xff1a;邻接矩阵、邻接表… 1、邻接…

SOME/IP 协议介绍(七)传输 CAN 和 FlexRay 帧

SOME/IP 不应仅用于传输 CAN 或 FlexRay 帧。但是&#xff0c;消息 ID 空间需要在两种用例之间进行协调。 传输 CAN/FlexRay 应使用完整的 SOME/IP 标头。 AUTOSAR Socket-Adapter 使用消息 ID 和长度来构建所需的内部 PDU&#xff0c;但不会查看其他字段。因此&#xff0c;必…

如何发现帕鲁私服漏洞

白天当帕鲁、晚上抓帕鲁 相信所有的帕鲁玩家都不希望辛辛苦苦肝了几百小时抓的帕鲁因为网络入侵消失&#xff0c;除了抵御游戏内的强盗入侵&#xff0c;还要抵御现实世界的网络入侵&#xff0c;原本单纯的帕鲁变的复杂无比。 服务器弱口令、服务漏洞、未授权访问等入侵手段&a…

怎样自行搭建幻兽帕鲁游戏联机服务器?

幻兽帕鲁是一款深受玩家喜爱的多人在线游戏&#xff0c;为了获取更好的游戏体验&#xff0c;许多玩家希望能够自行搭建幻兽帕鲁游戏联机服务器&#xff0c;本文将指导大家如何自行搭建幻兽帕鲁游戏联机服务器。 自行搭建幻兽帕鲁游戏联机服务器&#xff0c;阿里云是一个不错的选…

【UVM源码】UVM Config_db机制使用总结与源码解析

UVM Config_db机制使用总结与源码解析 UVM Config_db机制介绍UVM Config_db 机制引入的背景基本介绍使用方法优缺点&#xff1a; UVM Config_db机制使用示例&#xff1a;UVM Config_db使用高阶规则Config_db资源优先级 UVM Config_db 源码解析 UVM Config_db机制介绍 UVM Conf…

合作文章(IF=13.6)| 神经损伤修复:“多效气体发射器”凝胶的妙用”

研究背景 周围神经损伤&#xff08;PNI&#xff09;包括对周围神经的形态学结构或生理功能的所有损伤。由于周围神经的结构和功能复杂&#xff0c;PNI往往导致预后不良和高致残率。药物递送移植物因其重建周围神经微环境的潜力而备受关注&#xff0c;但调节微环境的适当调控时…

2024年自动化测试岗位需求的 7 项必备技能 (最新版)

随着敏捷和DevOps等新时代项目开发方法逐渐取代旧的瀑布模型&#xff0c;测试需求在业界不断增长。测试人员现在正在与开发人员一起工作&#xff0c;自动化测试在许多方面极大地取代了手动测试。 如果您是自动化测试领域的新手&#xff0c;刚雇用您的组织将期望您快速&#xf…

ES 分词器

概述 分词器的主要作用将用户输入的一段文本&#xff0c;按照一定逻辑&#xff0c;分析成多个词语的一种工具 什么是分词器 顾名思义&#xff0c;文本分析就是把全文本转换成一系列单词&#xff08;term/token&#xff09;的过程&#xff0c;也叫分词。在 ES 中&#xff0c;Ana…

【网络项目】基于SSM的227闪烁物业管理系统

&#x1f64a;作者简介&#xff1a;拥有多年开发工作经验&#xff0c;分享技术代码帮助学生学习&#xff0c;独立完成自己的项目或者毕业设计。 代码可以私聊博主获取。&#x1f339;赠送计算机毕业设计600个选题excel文件&#xff0c;帮助大学选题。赠送开题报告模板&#xff…