01-02-2

1、typedef的使用

a.语法

typedef 原名 别名;。
​
typedef struct student {int num;char name[20];char sex;
}stu,*pstu;//stu相当于struct student这个类型,*pstu相当于struct student *

别名的理解方法:若是字母前面有符号,类似于*,将*直接放到struct 结构体名后面即可,此时再将形成的结果:struct 结构体名 *,与最后的字母划等号即可。此时的字母就是对应类型的别名。后面就可以使用该别名定义变量。

起别名的目的是为了实现:代码即注释。

typedef重命名的规则:重新起的名字后来出现,所以放在后面。

使用的代码

//给结构体类型起别名,叫stu,给结构体指针类型起别名:pstu
typedef struct student {int num;char name[20];char sex;
}stu,*pstu;//stu相当于struct student这个类型,*pstu相当于struct student *
typedef int INTEGER;
int main()
{stu s = { 1001,"wangle",'M' };//等价于struct student s = { 1001,"wangle",'M' }pstu p;//等价于struct student *p;等价于stu*p;INTEGER i = 10;p = &s;printf("i=%d,p->num=%d\n", i, p->num);//p是结构体指针return 0;
}

2、C++中的引用

a.语法:

在传递时,传递变量名。

在接收时,格式为:变量类型 引用符号(&) 形参名。

此时在子函数中,改变此形参值时,也会影响外部函数的变量 。

使用的代码

#include<stdio.h>
void modifynum(int& b)//形参接收
{b = b + 1;
}
int main()
{int a = 10;modifynum(a);//实参传递printf("a=%d\n", a);return 0;
}

注意:指针的类型是:指向空间类型 *

一旦引用,则形参与实参就是同一个变量,互相影响。

使用的代码

#include<stdio.h>
#include<stdlib.h>
#include<stdlib.h>
void modifynum(int& b)//形参接收
{b = b + 1;
}
void modify_pointer(int*& p)//指针的引用
{p =(int*)malloc(20);p[0] = 5;
}
int main()
{int a = 10;modifynum(a);//实参传递printf("a=%d\n", a);int* p = NULL;modify_pointer(p);//指针的传递printf("p[0]=%d", p[0]);return 0;
}

3、逻辑结构与存储结构

a.逻辑结构

集合、线性、树形、图形结构

b.存储结构

顺序、链式、索引、散列存储。

b-1:顺序存储

数组属于顺序存储。

存储元素一个按着一个,对应的地址下标也是逐步递增的。

优点:

可以实现随机存取,每个元素占用最少空间。(想取哪个元素,通过对应下标访问即可)

缺点:

只能使用整块的存储单元,会产生较多的碎片。

b-2:链式存储

每个数据单元是一个结构体,结构体分为两部分,一个存储具体的数据,另一个存储后面一个数据单元

对应的地址。

优点:

充分利用所有的存储单元,不会出现碎片现象

缺点:

需要额外存储空间存放下一节点的指针,只能实现顺序存取。(需要通过前一个节点中的地址,才能访

问到下一节点,即不能直接访问到所需的节点)

4、时间复杂度

a.算法

定义:

对特定问题求解步骤的描述

特性:

有穷、确定、可行、输入、输出

b.时间复杂度

时间复杂度是通过运行次数来反映。格式为:O(f(n))。这里的f(n)就是运行次数的函数

示例一:

示例二:

示例三:

示例四:

示例五:

示例六:

例题

5、空间复杂度

定义

空间复杂度S(n):指算法运算过程中使用的辅助空间的大小

算法原地工作:指算法所需的辅助空间是常量,即为O(1)

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

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

相关文章

SOUI4里使用字体回退

在新版本的SOUI里render-skia导出了一个新的函数用于字体回退功能。Render_Skia_SetFontFallback 函数原型如下&#xff1a; EXTERN_C void SOUI_COM_API Render_Skia_SetFontFallback(FontFallback fontFallback);因为我的工程是使用动态库&#xff0c;这里可以直接获取到这…

如何用微信小程序实现远程控制4路控制器/断路器

如何用微信小程序实现远程控制4路控制器/断路器呢&#xff1f; 本文描述了使用微信小程序调用HTTP接口&#xff0c;实现控制4路控制器/断路器&#xff0c;支持4路输出&#xff0c;均可独立控制&#xff0c;可接入各种电器。 可选用产品&#xff1a;可根据实际场景需求&#xf…

hydra常见服务爆破命令

简介 hydra 也称九头蛇&#xff0c; 是著名黑客组织thc的一款开源的暴力密码破解工具&#xff0c;可以破解多种密码。 1. 21端口爆破命令 21端口主要用于FTP(File Transfer Protocol&#xff0c;文件传输协议)服务&#xff0c; FTP服务主要是为了在两台计算机之间实现文件的…

代码随想录算法训练营Day38 | 动态规划理论基础、509. 斐波那契数、70. 爬楼梯、746. 使用最小花费爬楼梯 | Python | 个人记录向

注&#xff1a;Day37休息。 本文目录 动态规划理论基础509. 斐波那契数做题看文章 70. 爬楼梯做题看文章空间复杂度为O(n)版本空间复杂度为O(3)版本 746. 使用最小花费爬楼梯做题看文章 以往忽略的知识点小结个人体会 动态规划理论基础 代码随想录&#xff1a;动态规划理论基…

内容与图像一对多问题解决

场景复现 分析&#xff1a; 其实这是两给表&#xff0c;一个内容表&#xff0c;一个图片表&#xff0c;一对多的关系。 解决思路: 1. 先上传图片拿到图片的List集合ids&#xff0c;返回值是集合的ids&#xff0c;给到前端 2. 再添加内容表的数据生成了id&#xff0c;遍历查…

佳博打印机如何设置打印模式为热敏模式

1、打开电脑搜索框&#xff0c;如下图输入打印机: 2、点击打印机设置&#xff0c;如下图&#xff1a; 3、点击打印机首选项&#xff0c;如下图&#xff1a; 4、点击下图“卷”进行设置 也可对打印机间距高度进行调整

网络流初步(图论学习总结部分内容)

文章目录 前言五、网络流初步最大流&#xff08;Maximum flow&#xff0c;简称 M F MF MF&#xff09; e g 1 : eg1: eg1: [ P 2764 P2764 P2764 最小路径覆盖问题 - 洛谷 | 计算机科学教育新生态 (luogu.com.cn)](https://www.luogu.com.cn/problem/P2764) 最小费用最大流&am…

【深度学习】探秘PSD:合成到真实去雾框架的实例解析

揭秘PSD&#xff1a;合成到真实去雾框架的革新 一、PSD框架的提出背景二、PSD框架的原理与网络结构三、PSD框架的实现与代码示例四、结论与展望 在图像处理领域&#xff0c;去雾技术一直是一个备受关注的研究热点。然而&#xff0c;传统的去雾方法在面对真实世界的模糊图像时&a…

腐烂的橘子

代码实现&#xff1a; int orangesRotting(int **grid, int gridRowSize, int *gridColSizes) {int good 0, bad 0, t 0;for (int i 0; i < gridRowSize; i) {for (int j 0; j < gridColSizes[0]; j) {if (grid[i][j] 1) { // 记录好橘子数good;} else if (grid[i…

k8s集群的常用命令

查看帮助文档 kubectl --help&#xff1a;显示kubectl命令行工具的帮助信息。 配置kubectl kubectl config set-cluster [cluster-name] --server[server-url]&#xff1a;设置集群配置。kubectl config set-context [context-name] --cluster[cluster-name] --user[user-name]…

ABB机器人程序类型介绍

ABB机器人编程语言为rapid语言&#xff0c;在例行程序中可分为三类&#xff1a;普通程序、功能程序和中断程序。例如新建一个例行程序&#xff0c;会选择一个程序类型&#xff0c;三种类型的区别如下&#xff1a; 1、普通程序&#xff08;procedures&#xff09;&#xff1a;常…

信息系统架构_3.信息系统架构的一般原理

1.信息系统架构的研究 在信息系统中使用体系结构一词&#xff0c;不如计算机体系结构&#xff0c;网络体系结构和数据体系结构那么显而易见。这是因为信息系统是基于计算机、通信网络等现代化工具和手段&#xff0c;服务于信息处理的人机系统&#xff0c;不仅包括了计算…

优选算法——双指针补充

五、leetcode611.有效三角形的个数 题目分析&#xff1a; 给定一个包含非负整数的数组 nums &#xff0c;返回其中可以组成三角形三条边的三元组个数。 算法原理&#xff1a; 应用三角形任意量两边之和大于第三边&#xff1b; 解决方案&#xff1a;利用单调性解决&#xf…

蓝桥杯国赛每日一题:日志统计(双指针)

题目描述&#xff1a; 小明维护着一个程序员论坛。现在他收集了一份”点赞”日志&#xff0c;日志共有 N行。 其中每一行的格式是&#xff1a; ts id 表示在 ts时刻编号 id 的帖子收到一个”赞”。 现在小明想统计有哪些帖子曾经是”热帖”。 如果一个帖子曾在任意一个长…

5.13学习日志

Pytorch 神经网络基础 1.模型构造 1》层和块 块可以描述单个层&#xff0c;由多个层组成的组件或者模型本身 块由类表示&#xff0c;类的任何子类都必须定义一个将其输入转换为输出的前向传播函数。为了计算梯度&#xff0c;块必须具有反向传播函数 自定义块&#xff1a; …

把现有的 Jenkins 容器推送到一个新的镜像标签,并且重新启动新的容器

要把现有的 Jenkins 容器推送到一个新的镜像标签&#xff0c;并且重新启动新的容器&#xff0c;你可以按照以下步骤操作&#xff1a; 停止当前正在运行的 Jenkins 容器&#xff08;如果你不想在操作时中断服务&#xff0c;可以跳过此步骤&#xff0c;直接进行下一步&#xff09…

VM 系列——SEED-X——论文解读

一、概述 1、是什么 是一个多模态大模型,论文全称《SEED-X: Multimodal Models with Unified Multi-granularity Comprehension and Generation》,不同于之前的图像文本大模型,主要面向图像问答理解。通过动态分辨率图像编码来处理任意尺寸和宽高比的图像,其作为一个统…

代码大师的工具箱:现代软件开发利器

✨✨ 欢迎大家来访Srlua的博文&#xff08;づ&#xffe3;3&#xffe3;&#xff09;づ╭❤&#xff5e;✨✨ &#x1f31f;&#x1f31f; 欢迎各位亲爱的读者&#xff0c;感谢你们抽出宝贵的时间来阅读我的文章。 我是Srlua小谢&#xff0c;在这里我会分享我的知识和经验。&am…

申请免费的Let‘s Encrypt 通配符 HTTPS 证书

参考 https://www.cnblogs.com/wzlinux/p/11188454.html 检测工具 https://www.ssleye.com/ssltool/cer_check.html 申请步骤 安装工具包 curl -o /etc/yum.repos.d/epel-7.repo https://mirrors.aliyun.com/repo/epel-7.repo yum install -y certbot## certbot certonly…

【C++】-QT网络编程-【http】-007

1 【http】请求 #ifndef MYWIDGET_H #define MYWIDGET_H#include <QWidget> class QNetworkAccessManager;//前向引用声明namespace Ui { class MyWidget; }class MyWidget : public QWidget {Q_OBJECTpublic:explicit MyWidget(QWidget *parent 0);~MyWidget();privat…