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)

指针变量的定义和初始化

相关推荐
C++ 老炮儿的技术栈1 天前
volatile使用场景
linux·服务器·c语言·开发语言·c++
AI科技星1 天前
全尺度角速度统一:基于 v ≡ c 的纯推导与验证
c语言·开发语言·人工智能·opencv·算法·机器学习·数据挖掘
always_TT1 天前
C语言中的字符与字符串(char数组)
c语言·开发语言
forAllforMe1 天前
LAN9252 从机寄存器配置--C语言举例
c语言·开发语言
17(无规则自律)1 天前
【Linux驱动实战】:字符设备之ioctl与mutex全解析
linux·c语言·驱动开发·嵌入式硬件
weixin_537590451 天前
《C程序设计语言》练习答案(练习1-4)
c语言·开发语言
炸膛坦客1 天前
单片机/C/C++八股:(十五)内存对齐、结构体内存对齐
c语言·开发语言·单片机
老约家的可汗1 天前
C/C++内存管理探秘:从内存分布到new/delete的底层原理
c语言·c++
计算机安禾1 天前
【C语言程序设计】第37篇:链表数据结构(一):单向链表的实现
c语言·开发语言·数据结构·c++·算法·链表·蓝桥杯
weixin_649555671 天前
C语言程序设计第四版(何钦铭、颜晖)第十章函数与程序设计之汉诺塔问题
c语言·c++·算法