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

C语言 指针——指针变量的定义、初始化及解引用

目录

指针

内存如何编址?

如何对变量进行寻址?

用什么类型的变量来存放变量的地址?

如何显示变量的地址?​编辑

使用未初始化的指针会怎样?

NULL是什么?

如何访问指针变量指向的存储单元中的数据?

指针变量的定义和初始化


指针

指针( Pointer )是“稀饭( C Fans )”最挚爱的武器
C 的高效、高能主要来自于指针
很多“ Mission Impossible” 由指针完成
大多数语言都有无数的“不可能”
C 语言是
     “一切皆有可能” ——
     “Impossible is Nothing” ——
是谁惹的祸?
几乎全是由指针和数组引起的非法内存访问导致的
黑客攻击服务器利用的 bug 绝大部分都是指针和数组造成的
理解指针要从变量的地址谈起

内存如何编址?

如何对变量进行寻址?

用什么类型的变量来存放变量的地址?

指针( Pointer )类型
指针变量 —— 具有指针类型的变量
保存 32 位地址值 ——sizeof(pa) 4 个字节
用什么数据类型去理解它所指向的存储单元中的数据呢?

如何显示变量的地址?

使用未初始化的指针会怎样?

指针变量使用之前必须初始化
若你不知把它指向哪里,那就指向 NULL (在 stdio.h 中定义为 0

NULL是什么?

指针 —— 值为 NULL 的指针,即无效指针
问题: p = 0 p = NULL 有什么区别吗?
p = NULL 可以明确地说明 p 是指针变量,而不是一个数值型变量
问题:空指针就是指向地址为 0 的存储单元的指针吗?
答案:不一定
并非所有编译器都使用 0 地址
某些编译器为空指针使用 不存在的内存地址

如何访问指针变量指向的存储单元中的数据?

通过 间接寻址运算符 访问(引用)指针变量指向的变量的值
—— 指针的解引用 (Pointer Dereference)

指针变量的定义和初始化

相关文章:

  • 串口通信问题排查总结
  • Flink 对接 Hudi 查询数据,java代码编写
  • Windows驱动开发系列文章一
  • Deepin Linux 深度 V23 beige 官方源及换镜像源方法。
  • 【MySQL精通之路】优化
  • 一千题,No.0037(组个最小数)
  • 2021职称继续教育--中国共产党的光辉历程及其经验
  • 服务器的远程桌面无法连接,服务器远程桌面无法连接问题处理教程
  • nginx配置文件
  • 分布式事务-TCC
  • 锐捷网络与您相约第七届数字中国建设峰会 共话数字未来
  • RestTemplet 自定义消息转换器总结
  • 香港Web3媒体:Techub News
  • 动手学深度学习(Pytorch版)代码实践-深度学习基础-01基础函数的使用
  • 价值飙升30%,AI PC拉动半导体出货潮
  • 【css3】浏览器内核及其兼容性
  • 【跃迁之路】【733天】程序员高效学习方法论探索系列(实验阶段490-2019.2.23)...
  • Apache Pulsar 2.1 重磅发布
  • bearychat的java client
  • express.js的介绍及使用
  • JavaScript 无符号位移运算符 三个大于号 的使用方法
  • Js基础知识(一) - 变量
  • PaddlePaddle-GitHub的正确打开姿势
  • pdf文件如何在线转换为jpg图片
  • React中的“虫洞”——Context
  • Tornado学习笔记(1)
  • ubuntu 下nginx安装 并支持https协议
  • vue和cordova项目整合打包,并实现vue调用android的相机的demo
  • Vue--数据传输
  • 道格拉斯-普克 抽稀算法 附javascript实现
  • 对超线程几个不同角度的解释
  • 给第三方使用接口的 URL 签名实现
  • 好的网址,关于.net 4.0 ,vs 2010
  • 记录:CentOS7.2配置LNMP环境记录
  • 买一台 iPhone X,还是创建一家未来的独角兽?
  • 十年未变!安全,谁之责?(下)
  • 使用 Node.js 的 nodemailer 模块发送邮件(支持 QQ、163 等、支持附件)
  • 用简单代码看卷积组块发展
  • 选择阿里云数据库HBase版十大理由
  • ​ 轻量应用服务器:亚马逊云科技打造全球领先的云计算解决方案
  • ​queue --- 一个同步的队列类​
  • ​ssh-keyscan命令--Linux命令应用大词典729个命令解读
  • ​软考-高级-信息系统项目管理师教程 第四版【第19章-配置与变更管理-思维导图】​
  • ‌U盘闪一下就没了?‌如何有效恢复数据
  • #162 (Div. 2)
  • #QT 笔记一
  • #鸿蒙生态创新中心#揭幕仪式在深圳湾科技生态园举行
  • (20)docke容器
  • (a /b)*c的值
  • (MonoGame从入门到放弃-1) MonoGame环境搭建
  • (经验分享)作为一名普通本科计算机专业学生,我大学四年到底走了多少弯路
  • (实测可用)(3)Git的使用——RT Thread Stdio添加的软件包,github与gitee冲突造成无法上传文件到gitee
  • (四) 虚拟摄像头vivi体验
  • (一)基于IDEA的JAVA基础1
  • (转)Spring4.2.5+Hibernate4.3.11+Struts1.3.8集成方案一