详解C指针

简介: 对于C语言开发来说内存的管理显得很重要,尤其是对于初学者刚学指针会感到头疼,学了很久也不知道指针到底是个什么东西,本文将简单介绍指针相关的内容。

1.指针的定义:

所谓指针就是一个变量的地址,指针本身也是一个变量,指针的值就是变量的地址,所以对于一个一级指针的地址就是一个二级指针。



2.指针的两大要素

(1)起始地址:指针的值

(2)步长:指针的类型

对于一个一级指针来说步长为一个列指针,二级指针步长为一个行指针,三级指针步长为一个面指针,每升一级(取一次地址)加一维,降一级(借一下引用)降一维。



3.指针的运算

(1)对于指针来说:自增与自减的单位都是指针的步长,比如对一个二级指针来说,++一次会到下一行的相同列。

(2)指针的大小与类型无关,与操作系统位数有关。

对于32bits操作系统:

sizeof 指针 = 4bytes

对于64bits操作系统:

sizeof 指针= 8bytes

对于数组名(数组名可以理解为一种特殊的指针,我们后面会介绍):

sizeof 数组名 = 数组的大小



4.指针的应用

(1)传参过程中我们传指针能提高传参效率

(2)传参过程中传指针可以间接改实参的值



5.一些练习题

image.png

image.png


相关文章
|
监控 Java
【JVM线上调优】
【JVM线上调优】
186 0
|
负载均衡 Java 索引
Spring Cloud 五大核心组件解析之Ribbon组件IRule详解(上)
Spring Cloud 五大核心组件解析之Ribbon组件IRule详解(上)
|
安全 5G 网络安全
什么是 Wi-Fi 热点?
【8月更文挑战第24天】
3285 0
|
存储 运维 Kubernetes
阿里云中间件首席架构师李小平:企业为什么需要云原生?
阿里云希望跟社会各界的朋友一起在云原生领域里面做更多的探索,希望通过云原生技术,真正为企业带来更多的业务价值,助力企业整体的业务创新。
680 93
阿里云中间件首席架构师李小平:企业为什么需要云原生?
|
机器学习/深度学习 算法
【MATLAB】 多元变分模态分解MVMD信号分解算法
【MATLAB】 多元变分模态分解MVMD信号分解算法
1466 0
|
API
FreeRTOS软件定时器的原理以及使用实例
FreeRTOS软件定时器的原理以及使用实例
466 0
|
存储 机器学习/深度学习 人工智能
无向图的邻接矩阵可用一维数组存储
无向图的邻接矩阵可用一维数组存储
695 0
WebSocket实现线上聊天就是这么简单!
WebSocket实现线上聊天就是这么简单!
WebSocket实现线上聊天就是这么简单!
|
算法 C语言
【C语言】——函数--递归及习题练习
【C语言】——函数--递归及习题练习
|
应用服务中间件 Linux Shell
树莓派上安装Nginx竟如此简单,只需两行代码...
树莓派上安装Nginx竟如此简单,只需两行代码...