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

C语言中指针部分的总结归纳(三)

1.二级指针:

众所周知,指针指向的是变量的地址,那么二级指针,指向的就是指针的地址。

来看以下代码:

#include <stdio.h> int main() { int a = 10; int* p = &a;//取出a的地址赋给p int** pf = &p;//取出p的地址赋给pf printf("*p= %d\n", *p); printf("*pf= %p\n", *pf);//对pf一次解引用 printf("**pf= %d\n", **pf);//对pf二次解引用 return 0; }

可以看出,二级指针存放的是一级指针的地址,二级指针两次解引用得到a的值。

那么二级指针是什么类别的呢?

例如

int a = 10; int* p = &a; int** pf = &p;

先看p,*p是指针,指向类型为int.再看pf,*pf是指针,指向的类型为int*(二级指针指向的一级指针,一级指针类型为int*)。包括后续的三级四级指针都可以这么理解。但是我们常用的指针也就到二级了。

2.指针数组

我们类比一下,整型数组是存放整型的数组。同理,指针数组就是存放指针的数组。

指针数组格式:拿整型指针数组举例:int* arr[5];和整型数组很相似,因为是整型指针类型,所以前面为int *,字符指针等同理。

但是字符指针中有一块需要了解:请看以下代码:

#include <stdio.h> int main() { const char* pstr = "hello,bit"; printf("%s", pstr); return 0; }

运行结果为:

将整个字符串打印了出来,但是需要了解的是,pstr中存的是首字符的地址,也就是h的地址, 而%s打印是由首地址开始一直打印到'/0.

3.数组指针:

同指针数组易混淆,数组指针的后缀是指针,说明其是指针的类型,指向的是数组。

整型指针数组形如:int(*pf)[10]

一定要有括号,让*与指针名pf结合,否则[ ]的优先级更高,pf会先和[ ]结合。

总结:pf先和*结合,证明pf是一个指针变量,指向的是有[10]个元素的数组,类型是int.

那么数组指针该如何初始化呢?

观看以下代码:

#include <stdio.h> int main() { int arr[10] = {0}; int (*pf)[10] = &arr; printf("hello"); return 0; }

通过监视我们看到:

由此可知,&arr和pf的类型一致,均为指针数组类型。我们完成了对其的初始化。

http://www.jsqmd.com/news/609274/

相关文章:

  • 告别WinForm重写噩梦!.NET8+Avalonia实现C#工业上位机Windows/统信UOS双平台兼容,成本直降90%
  • 基于 QGIS 的经销网点空间制图:张雪机车全国门店可视化案例
  • 亲测实录:我用7款免费AI论文生成器,30分钟搞定6万字计算机论文初稿 - 麟书学长
  • 2026年|三招教你高效降低论文AI检测率,轻松通过Turnitin检测 - 降AI实验室
  • GD32F30x上RT-Thread与FreeModbus从机实战:从源码获取到调试成功的完整避坑记录
  • 2026年成都本地人推荐火锅:城市文化地标餐饮价值投资者甄选长周期稳健模型的决策分析 - 速递信息
  • Jellyfin豆瓣插件:中文媒体库构建与元数据优化全指南
  • 新手必看:RTKlib解算GNSS位置,你的o文件和nav文件真的用对了吗?
  • 从经验到智能:TVA时代企业质检员的角色转型
  • 2026年亲测:4个指令+3个技巧助你将论文AI率从50%直降到10% - 降AI实验室
  • Ostrakon-VL-8B部署教程:Docker Compose一键启停+NGINX反向代理配置
  • 【PyTorch 3.0性能调优终极清单】:覆盖Graph Capture、Memory Planning、Kernel Autotuning的12项必检指标
  • PixelMentor:一个开源网站 · 调用AI视觉能力分析图片 · 提供影视后期修改意见揖
  • YOLOv12进阶技巧:自定义数据集训练、模型微调与迁移学习
  • RAG检索系统
  • 2026年10款AI工具收藏必备:一键解决文本降重,高效降重无烦恼 - 降AI实验室
  • Span<T>不是银弹!深度剖析5种典型崩溃场景(IndexOutOfRangeException、堆栈溢出、跨作用域引用),附诊断工具链
  • NISSHINBO日清纺 NJW4104U2-05A-TE1 SOT-89-5 线性稳压器(LDO)
  • REX-UniNLU智能客服案例:电商领域多轮对话实战
  • 中压直流变压器高升压比单模块方案研究:MMC-DCT拓扑与控制策略
  • 从 RPA 到 IPA:AI Agent Harness Engineering 如何彻底取代传统自动化脚本
  • 深度学习篇---实时学习(Online Learning / Incremental Learning)
  • MES实施工程师的工作职责
  • 上海文化墙设计:让空间成为品牌价值的视觉表达
  • 为什么你的Span<T>代码在Release模式下崩溃?5步精准定位“ref-like type”隐式逃逸的终极调试法
  • 3步掌握Ant Design栅格系统:从0到1实现专业响应式布局
  • 你还在用sys.getsizeof()估算内存?揭秘LLM推理服务中Python对象真实内存开销的4层测量法(含C API级验证脚本)
  • 像素剧本圣殿入门实战:使用RPG对话框系统进行多轮剧本迭代
  • DBeaver 下载镜像(快)
  • 08-Claude Code 独有技巧