新闻详情

新闻详情

首页 / 资讯中心 / 详情

C 语言指针从入门到避坑:把指针踩在脚底(3)

发布时间:2026/9/25 18:57:19来源:尧图网络
C 语言指针从入门到避坑:把指针踩在脚底(3)
数组名的理解数组名在一般情况下是数组首元素的地址不过两种特殊情况sizeof(数组名此时数组名代表的是整个数组而此时sizeof的结果是数组的大小字节数组名此时数组名也代表整个数组此时的结果是整个数组的地址虽然打印的结果相同但数组首元素的地址 数组的地址具体体现在arr1和arr1的不同。使用指针访问数组当我们使用指针打印数组时通常采用以下写法intmain(){inti0;intarr[10]{1,2,3,4,5,6,7,8,9,10};int*parr;for(i0;i10;i){printf(%d\n,*(pi);结合以前的写法我们可知arr[i]*(arri)*(pi)所以可以看出通过下标访问数组的本质就是通过指针访问数组。结合加法交换律*(arri)*(iarr)。而[]和加号都是操作符。结合上述特性可以推算出arr[i]i[arr]只不过前者的写法便于人理解。一维数组传参的本质一维数组传参本质传的是数组的第一个元素的地址。所以在传入数组时函数的形参有两种写法。//创建一个数组intmain(){intarr[10]{0};test(arr);}voidtest(int*arr);//这是直接接受了数组的第一个元素的地址voidtest(intarr[10]);//这种写法也可以便于理解此外因为传入的是数组第一个元素的地址所以函数内部不能计算数组的个数如果函数内部要用到数组个数的话要额外传入。intmain(){intarr[10]{0};intszsizeof(arr)/sizeof(arr[]);test(arr,sz);}voidtest(int*arr,intsz);在传入数组前数组还是数组在传入后数组变成指针了这种现象叫做数组降级二级指针intmain(){inta0;int*pa;//一级指针变量int**ppp;//二级指针变量对二级指针变量int** pp的理解int**其中int*表示指针变量所指对象是int*类型的*表示pp是一个指针变量二级指针变量的解引用inta5;int*pa;int**ppp;//其中*ppp;而*pa所以**ppa指针数组的理解指针数组是指针还是数组类比intarr[5]{0};//整型数组——用来存放整型数据的数组chararr[5]{0};//字符数组——用来存放字符数据的数组//类比上述数组int*arr[5]{0};//指针数组——用来存放指针数据的数组我们还可以通过更生动的图像来理解指针数组模拟二维数组二维数组是一维数组“拼接”成的二维数组的每一行都可以看成一维数组。在这层理解下我们可以用指针来模拟二维数组。intmain(){intarr1[5]{12345};intarr2[5]{12345};intarr3[5]{12345};int*parr[3]{arr1,arr2,arr3};//数组名是数组中首元素的地址inti0;intj0;for(i0;i3;i){for(j0;j5;j){printf(%d,parr[i][j]);//每一个一维数组中元素地址是连续存放的}}return0;}图解这里我们模拟出了二维指针的效果但是行间并不连续所以这并不是真正的二维指针。目录数组名的理解使用指针访问数组一维数组传参的本质二级指针二级指针变量的解引用指针数组的理解指针数组模拟二维数组
网站建设高端定制企业官网
RELATED

相关资讯

更多精彩内容,欢迎继续阅读

较早相关资讯

最新相关资讯

三大巨头接连翻车,大模型的安全防线怎么总绷不住? 2026/9/25 19:30:15

三大巨头接连翻车,大模型的安全防线怎么总绷不住?

安全负责人走了一批又一批,AI对齐到底难在哪? 先是Anthropic,再是OpenAI,现在连谷歌的Gemini也出现安全问题了,大模型又双叒叕一次突破防火墙了。 不过,这些事故看多了,反倒会让人意识到一件更…

阅读更多 →
具身智能创新原理(193):基于TVA架构的VLA模型在人机协作中的应用研究 2026/9/25 19:30:09

具身智能创新原理(193):基于TVA架构的VLA模型在人机协作中的应用研究

前沿技术探索:TVA智能体(简称TVA)TVA智能体(亦称“AI智能体视觉”)是依托Transformer架构与“因式智能体”理论构建的新型工业视觉系统,也是当前最具代表性的具身视觉技术之一。它有机融合深度强化学习&…

阅读更多 →
Agent Skills实战:技能层的设计规范与调度实现 2026/9/25 19:30:02

Agent Skills实战:技能层的设计规范与调度实现

1. agent-skills到底是什么,我为什么建议每个Agent项目都单独抽一层1.1 从一次“翻车”经历说起:技能缺失有多坑先说一段亲身经历。去年我做了一个内部知识库问答机器人,最开始的想法特别朴素——把文档切块、灌进向量库、接个大模型接口&…

阅读更多 →
Atlas 300V Pro推理卡跑通YOLOv5全流程:从环境搭建到性能调优 2026/9/25 19:29:56

Atlas 300V Pro推理卡跑通YOLOv5全流程:从环境搭建到性能调优

做AI部署这行,这两年听得最多的词里,“atlas”绝对排得上前排。不过刚入行的朋友很容易被这个词绕晕,因为市面上叫Atlas的东西太多了,有数据库的、有地图软件的、还有希腊神话里扛天的巨人。但要是在AI推理、边缘计算这个圈子里说…

阅读更多 →
深入解析 cuDF 时间戳类型体系:libcudf `timestamp_classes` 的 Duration 与 Timestamp 设计 2026/9/25 19:29:43

深入解析 cuDF 时间戳类型体系:libcudf `timestamp_classes` 的 Duration 与 Timestamp 设计

数据分析数据工程机器学习 【免费下载链接】cudf cuDF - GPU DataFrame Library 项目地址: https://gitcode.com/gh_mirrors/cu/cudf 点击查看 免费下载 cuDF(GPU DataFrame Library)在 libcudf 层提供了一整套时间戳(Timestamp…

阅读更多 →
codex-desktop-linux read-aloud功能实战:让AI回复开口说话,附本地Kokoro TTS配置教程 2026/9/25 19:29:36

codex-desktop-linux read-aloud功能实战:让AI回复开口说话,附本地Kokoro TTS配置教程

codex-desktop-linux read-aloud功能实战:让AI回复开口说话,附本地Kokoro TTS配置教程 【免费下载链接】codex-desktop-linux Unofficial ChatGPT desktop app for Linux (formerly the Codex app), built locally from OpenAI’s official macOS app. I…

阅读更多 →

今日资讯

本周资讯

本月资讯

看完文章仍有疑问?

联系尧图顾问,获取一对一建站咨询

立即免费咨询 📞 400-888-8888
📞 ✉