【数据结构】链表中的 指针,地址 您所在的位置:网站首页 节点地址是什么意思 【数据结构】链表中的 指针,地址

【数据结构】链表中的 指针,地址

2024-05-27 09:18| 来源: 网络整理| 查看: 265

数据结构中跳过集合,直接开始线性结构 线性结构中单链表的操作涉及到给一个变量赋值地址,所以涉及到了指针 通过指针里的地址很方便找到节点 但指针这里绕了我很长时间,不论学了多少遍也不敢说把指针学会了

地址: 地址是什么,从哪里来? 地址是内存中每个字节的编号

在这里插入图片描述 我的电脑内存是4G=4×1024(M)×1024(K)×1024(Byte)=4294967296 Byte 其中每个字节Byte=8位bit 如果为每一个字节编码,那么范围为0~4294967295(十进制) 换算为2进制:0000 0000 0000 0000 ~ 1100 1101 1111 1111 1111 1111 1111 1111(32bit) 换算为16进制:0x 00000000 ~ 0xCDFFFFFF 所以人们就用:0x 00000000 ~ 0xFFFFFFFF 来表示内存地址的范围 其中一个字节分配一个地址

指针: 指针是什么,从哪里来?指针是保存地址的变量

比如我们有一个 整数 3 ,我们用一个整型变量 int a 来存储这个3 那么,如果你有一个地址 0xCDFFFFFF,需要一个 变量来存这个地址,那么存这个地址的变量就要做指针,指针也有类型。什么类型的指针用来指向什么类型的值 比如:

例子 内存编号为 0xCDFFFFFF的空间里存了一个整数3 将0xCDFFFFFF这个地址存放到内存编号为0xCDFFFFF0的内存空间中 在程序中声明了一个整型的指针变量,这个变量里存的就是0xCDFFFFF0 由于这个指针所指向的地址空间里存放的是个整型数,所以这个指针的类型就为整型

指针–地址的符号 *代表 指向某个内存编号(地址)的指针 举例: *a 代表指向0xCDFFFFFF内存编号的地址变量 & 取出地址 &(*a) 取出地址变量*a的存储内容,结果为0xCDFFFFFF 怎样判断是不是指针

带*号的不一定就是指针,&取地址符的结果也不一定就是地址,因为有时候会用嵌套,使得问题不能直观看出来! 这时候,最最最重要的就是看 *后面的变量名里存的究竟是什么。 如果是一个真实的内存编号,那才是指针 例如: 在这里插入图片描述

数据结构中的p->next,p->data

C语言的表示 在这里插入图片描述 p  是一个指针,指针里存放的是结点A的地址 p->  代表  指针p所存的地址对应的内容,这里P指针里存的是个节点,所以P->代表结点 p->next 代表 取这个节点的指针域的内容,这样就得到了下一个节点所在的内存地址 p->data 代表 取这个节点的数据域的内容



【本文地址】

公司简介

联系我们

今日新闻

    推荐新闻

    专题文章
      CopyRight 2018-2019 实验室设备网 版权所有