当前位置: 首页 > news >正文

C++ 彻底搞懂指针(1)

当有人问起,什么是指针时,我会毫不犹豫地回答,指针变量存放的是地址!然后呢,好像也说不出什么了,今天就再来详细看一下指针吧。

本文提纲如下:

    •    指针变量

    •    未初始化的指针

    •    NULL

    •    void指针

    •    指针的指针

首先要明白几点:

    •    每个字节都有自己唯一的地址,就像门牌号一样,根据地址可以准确地找到某个字节

    •    如果知道一个变量的存储地址,那么就可以根据这个地址得到这个变量的值。但是这很难,因为很难知道某个变量的具体地址,所以一般都是使用变量名字而不是地址来访问内存的位置

    •    变量名让我们用更方便的方式记住地址,实际上,变量名和地址之间的对应关系是由编译器来实现的,硬件仍然是通过地址访问内存位置

    •    除变量名之外,函数名、数组名、字符串名都是一样的,都为我们提供了方便,在编程的过程中不用直接面对二进制地址

1. 指针变量

我一开始还纠结要不要写这一部分,我想还是不要眼高手低吧,从最基础的开始写起吧。

相信大家都知道了,C语言中可以使用一个变量来存放地址,这种变量称为指针变量,这里的地址可以是变量、数组、字符串、函数的地址,也可以是另一个指针变量的地址。

1.1 定义指针变量

 

int a = 100;

int b = 200;

char c = 'A';

int *p1 = &a;        //定义指针变

相关文章:

  • golang 1.22特性之for loop
  • 确保家电安全无忧:可燃气体报警器检验的重要性与必要性
  • 【小程序静态页面】猜拳游戏大转盘积分游戏小程序前端模板源码
  • word图题表题公式按照章节编号(不用题注)
  • 基于x86+FPGA+AI轴承缺陷视觉检测系统,摇枕弹簧智能检测系统
  • [数据集][目标检测]电力场景下电柜箱门把手检测数据集VOC+YOLO格式1167张1类别
  • MapReduce的执行流程排序
  • Spring Boot中的分布式文件系统
  • 版本控制系统:Git 纯应用(持续更新)
  • 轻松创建对象——简单工厂模式(Python实现)
  • vue 中使用element-ui实现锚点定位表单
  • 矮油,希喂、喜崽、爱立方主食冻干是超贵的进口平替?最新测评
  • 大二暑假 + 大三上
  • uniapp小程序打开地图导航
  • 2024国内排名靠前的十大源码交易平台
  • [译]前端离线指南(上)
  • 《剑指offer》分解让复杂问题更简单
  • 5分钟即可掌握的前端高效利器:JavaScript 策略模式
  • C++11: atomic 头文件
  • docker python 配置
  • Java读取Properties文件的六种方法
  • java中的hashCode
  • Js基础知识(一) - 变量
  • js数组之filter
  • react 代码优化(一) ——事件处理
  • 从0到1:PostCSS 插件开发最佳实践
  • 聊聊sentinel的DegradeSlot
  • 强力优化Rancher k8s中国区的使用体验
  • 如何打造100亿SDK累计覆盖量的大数据系统
  • 腾讯大梁:DevOps最后一棒,有效构建海量运营的持续反馈能力
  • 学习ES6 变量的解构赋值
  •  一套莫尔斯电报听写、翻译系统
  • gunicorn工作原理
  • MyCAT水平分库
  • UI设计初学者应该如何入门?
  • 容器镜像
  • ​人工智能书单(数学基础篇)
  • #QT项目实战(天气预报)
  • #Z0458. 树的中心2
  • (13)Hive调优——动态分区导致的小文件问题
  • (3)选择元素——(14)接触DOM元素(Accessing DOM elements)
  • (floyd+补集) poj 3275
  • (个人笔记质量不佳)SQL 左连接、右连接、内连接的区别
  • (剑指Offer)面试题34:丑数
  • (一) springboot详细介绍
  • ***原理与防范
  • *Algs4-1.5.25随机网格的倍率测试-(未读懂题)
  • .NET 4.0中的泛型协变和反变
  • .net core 连接数据库,通过数据库生成Modell
  • .NET MVC第五章、模型绑定获取表单数据
  • .NET 分布式技术比较
  • .NET 设计模式—适配器模式(Adapter Pattern)
  • .NET平台开源项目速览(15)文档数据库RavenDB-介绍与初体验
  • .Net下使用 Geb.Video.FFMPEG 操作视频文件
  • .NET学习教程二——.net基础定义+VS常用设置