啊哈算法

编程入门 行业动态 更新时间:2024-10-24 08:25:42

啊哈<a href=https://www.elefans.com/category/jswz/34/1770096.html style=算法"/>

啊哈算法

文章目录

  • 前言
  • 一、链表是什么?
  • 二、链表的存储

前言

数组在平常使用中的比较多的,但是有时候我们会需要在一串已经排好序的序列中,插入一个数字,并要求仍符合从小到大的要求。
2 3 5 8 9 10 18 26 32 ,现在要插入6并且是排序好的,此时使用数组的话,就要将8以及8以后的数字往后挪一位。

这样的操作会很耽误时间!使用链表会快很多,

一、链表是什么?

在C语言中可以使用指针和动态分配内存函数malloc来实现。e~指针是啥子嘞,指针其实挺简单的。

先看看下面两行代码

int a;
int *p;

  • 第一行就是定义一个整型变量a,第二行你会发现p前面多了一个*号,这就表示一个整型指针变量p。即定义了一个指针;在这里定义了一个存放整数的内存空间地址。

doule *p;//则定义一个存放浮点数的内存空间地址

  • 它的作用:存储一个地址,确切的说是存储一个内存空间的地址。

现在知道指针是用来存储地址的,那么问题来了:整型指针p如何才能存储整型变量a的地址呢? 如下:

p=&a;

&符号就是就是经常在scanf函数中用到的&。它叫做取地址符,p=&a;这样p就获得了整型变量a的地址。
通常情况下,我们都会说指针p指向整型变量a。那么p指向a之后有什么用呢?
用处:就是可以用指针p来操作变量a了。
例子

//通过操作指针p来输出变量a的值
#include<stdio.h>
int main(){int a=10;int *p;p=&a;printf("%d",*p);getchar();getchar();return 0;
}
运行结果:
10

这里printf里面*p的 *叫做 间接访问运算符, 作用是取得指针p所指向的内存中的值。

  • 在C语言中*号有三个用途
  1. 乘号,用做乘法运算,例如5*6;
  2. 声明一个指针变量,在定义指针变量是使用,例如int *p;
  3. 间接访问运算符,取得指针指向的内存中的值,例如printf(“%d”,*p);

可能到现在觉得指针并没有什么多大用处啊啊。
不要着急,要放大招了。
回想一下,我们要存储一个整数10,除了使用int a这一种在内存中申请一块区域来存储,还有另外一种动态存储方法

malloc(4);
//malloc的作用:从内存中申请分配指定字节大小的内存空间。
//上面malloc(4)就申请了4个字节的空间。

如果你不知道int类型是4个字节的,还可以使用sizeof(int)获取int类型所占用的字节数
malloc(sizeof(int));需要注意的是在使用malloc函数是需要用到stdlib.h头文件

#include <stdio.h>
#include <stdlib.h>
int main(){int *pp=(int *)malloc

更多推荐

啊哈算法

本文发布于:2024-02-25 02:51:59,感谢您对本站的认可!
本文链接:https://www.elefans.com/category/jswz/34/1697543.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
本文标签:算法

发布评论

评论列表 (有 0 条评论)
草根站长

>www.elefans.com

编程频道|电子爱好者 - 技术资讯及电子产品介绍!