码农知识堂 - 1000bd
  •   Python
  •   PHP
  •   JS/TS
  •   JAVA
  •   C/C++
  •   C#
  •   GO
  •   Kotlin
  •   Swift
  • 这就是你了解的指针吗?


    小叮当的任意门——指针

    • 1. 指针是什么?
    • 2. 指针和指针类型
      • 1. 指针+-整数
      • 2. 指针的解引用
    • 3. 野指针
      • 1. 野指针的成因
        • 未初始
        • 指针越界访问
        • 指针指向的空间释放
      • 2. 如何规避野指针
    • 4. 指针运算
      • 指针减指针
      • 指针的关系运算
    • 5. 二级指针
    • 6. 指针数组

    1. 指针是什么?

    请添加图片描述
    在讲指针之前我们是需要先了解内存的请添加图片描述
    请添加图片描述
    指针是内存中一个最小单元的编号,也就是地址
    请添加图片描述
    取地址a是取的第一个字节的地址
    请添加图片描述
    把a的地址存储起来放在pa中,存起来跟不存起来是有区别的。请添加图片描述
    平时口语中说的指针,通常指的是指针变量,是用来存放内存地址的变量
    请添加图片描述
    请添加图片描述
    请添加图片描述
    要知道*pa与pa的区别。
    在这里插入图片描述
    在这里插入图片描述
    请添加图片描述
    请添加图片描述
    请添加图片描述
    请添加图片描述
    为4GB
    在这里插入图片描述

    2. 指针和指针类型

    在这里插入图片描述
    请添加图片描述
    为什么不用统一的ptr类型呢?因为各个类型有自己的作用。
    请添加图片描述
    请添加图片描述
    为什么全变0了?
    请添加图片描述
    这个怎么就变一个呀?
    这就是指针类型的意义
    请添加图片描述
    请添加图片描述
    请添加图片描述
    所以
    请添加图片描述决定步长
    在这里插入图片描述
    用循环也可以改变

    1. 指针±整数

    请添加图片描述这就是刚刚上面讲的
    在这里插入图片描述

    2. 指针的解引用

    在这里插入图片描述上面也说明过

    3. 野指针

    请添加图片描述

    1. 野指针的成因

    未初始

    请添加图片描述
    这里面没有初始化
    请添加图片描述
    请添加图片描述

    指针越界访问

    在这里越界访问了,所以后面的就随机打印一个数字
    请添加图片描述

    指针指向的空间释放

    请添加图片描述

    这个也是的,李四叫张三来如家客栈,住宾馆,后面张三来了,李四早就退房了。

    请添加图片描述

    请添加图片描述

    请添加图片描述

    请添加图片描述

    2. 如何规避野指针

    在这里插入图片描述

    4. 指针运算

    请添加图片描述
    这其实就是前面讲的
    请添加图片描述
    要注意:

    请添加图片描述
    请添加图片描述
    这就不行
    请添加图片描述
    请添加图片描述

    指针减指针

    请添加图片描述
    后面因为是循环
    请添加图片描述
    请添加图片描述
    请添加图片描述
    这里要多减一个1。如果是\0,因为while循环,

    指针的关系运算

    请添加图片描述
    请添加图片描述
    请添加图片描述
    要有所指
    请添加图片描述
    请添加图片描述
    下面的小细节,其他写法也可以
    请添加图片描述
    请添加图片描述

    请添加图片描述
    请添加图片描述
    这就厉害了
    请添加图片描述
    因为
    请添加图片描述

    5. 二级指针

    请添加图片描述
    取a的地址到指针变量pa中,就是那个16进制的,因为pa为指针变量,是指针变量就有自己地址,与a是不一样的。
    请添加图片描述在第一个指针变量再取出地址,就是二级指针变量了

    请添加图片描述
    这里的 * 是指针变量的标志
    请添加图片描述
    这里的画圈是对于前面变量的类型
    请添加图片描述
    三级还是比较少见,了解即可
    请添加图片描述
    要知道解引用操作符的作用,直接对于前面。
    请添加图片描述
    看看这就直接对于a去了,最后打印10
    请添加图片描述
    从后面修改也是可以的,这是互通的。

    6. 指针数组

    请添加图片描述
    请添加图片描述
    其实我们前面学习的也是一样的
    请添加图片描述
    请添加图片描述
    其实就是这样
    请添加图片描述

    下面我们使用一维数组,模拟一个二维数组
    请添加图片描述
    请添加图片描述

    请添加图片描述
    总体是比较简单明了的,学习就是慢慢迭代,前后链接起来就容易多了。

    守得云开见月明

    请添加图片描述

  • 相关阅读:
    014python-内置函数
    Docker基础操作容器
    MFC扩展库BCGControlBar Pro v35.0新版亮点:重新设计的工具栏编辑器等
    Kubernetes(22):Ingress详解
    android 后台运行service实现和后台的持续交互
    java实现数据库自动异地备份
    常见算法(一)
    wps:基本使用【笔记】
    计算机基础(三):C语言与汇编
    数据库的原理及应用
  • 原文地址:https://blog.csdn.net/m0_73920510/article/details/127995823
  • 最新文章
  • 攻防演习之三天拿下官网站群
    数据安全治理学习——前期安全规划和安全管理体系建设
    企业安全 | 企业内一次钓鱼演练准备过程
    内网渗透测试 | Kerberos协议及其部分攻击手法
    0day的产生 | 不懂代码的"代码审计"
    安装scrcpy-client模块av模块异常,环境问题解决方案
    leetcode hot100【LeetCode 279. 完全平方数】java实现
    OpenWrt下安装Mosquitto
    AnatoMask论文汇总
    【AI日记】24.11.01 LangChain、openai api和github copilot
  • 热门文章
  • 十款代码表白小特效 一个比一个浪漫 赶紧收藏起来吧!!!
    奉劝各位学弟学妹们,该打造你的技术影响力了!
    五年了,我在 CSDN 的两个一百万。
    Java俄罗斯方块,老程序员花了一个周末,连接中学年代!
    面试官都震惊,你这网络基础可以啊!
    你真的会用百度吗?我不信 — 那些不为人知的搜索引擎语法
    心情不好的时候,用 Python 画棵樱花树送给自己吧
    通宵一晚做出来的一款类似CS的第一人称射击游戏Demo!原来做游戏也不是很难,连憨憨学妹都学会了!
    13 万字 C 语言从入门到精通保姆级教程2021 年版
    10行代码集2000张美女图,Python爬虫120例,再上征途
Copyright © 2022 侵权请联系2656653265@qq.com    京ICP备2022015340号-1
正则表达式工具 cron表达式工具 密码生成工具

京公网安备 11010502049817号