首页/新闻资讯/正文详情

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

发布时间:2026/9/25 18:57:16 来源:云帆数科 栏目:资讯中心
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;}图解这里我们模拟出了二维指针的效果但是行间并不连续所以这并不是真正的二维指针。目录数组名的理解使用指针访问数组一维数组传参的本质二级指针二级指针变量的解引用指针数组的理解指针数组模拟二维数组

相关推荐

如何给Aliens Eye添加自定义平台?sites.d即插即用插件完整教程
如何给Aliens Eye添加自定义平台?sites.d即插即用插件完整教程

如何给Aliens Eye添加自定义平台?sites.d即插即用插件完整教程 【免费下载链接】Aliens_eye Hunt down 840 social media accounts using AI 项目地址: https://gitcode.com/gh_mirrors/al/Aliens_eye Aliens Eye 是一款 AI 驱动的 OSINT 用户名扫描工具&… · 2026/9/25 18:57:10

ai自动生成系统实测零基础当天上手
ai自动生成系统实测零基础当天上手

这是一次委托实测的完整记录。实测由一位零基础用户——某公司行政专员小周完成,目标是验证一个命题:完全不懂技术的人,能不能在当天用搭贝生成一套可用的管理系统。业务是她自己挑的:公司内部 IT 支持工单系统。 这个场景每个公司… · 2026/9/25 18:57:04

数据结构做题笔记
数据结构做题笔记

1.链表逆序代码 ** #include <stdio.h> #include <stdlib.h> typedef struct Node {int data;struct Node *next; } Node;struct Node *reverseList(Node *head) {Node *pre NULL;Node *cur head;Node *next NULL;while (cur ! NULL){next cur->next;cur-&g… · 2026/9/25 18:56:39

netsh wlan show命令详解:Windows无线诊断核心工具
netsh wlan show命令详解:Windows无线诊断核心工具

1. 这条命令不是“一行玄学”&#xff0c;而是Windows无线诊断的底层手术刀你有没有遇到过这样的场景&#xff1a;笔记本突然连不上家里的Wi-Fi&#xff0c;手机却一切正常&#xff1b;公司会议室的无线信号格满格&#xff0c;但你的电脑就是显示“无Internet访问”&#xff1b… · 2026/9/25 19:22:40

粮食收购管理系统落地指南:从解压部署到结算对账的避坑手册
粮食收购管理系统落地指南:从解压部署到结算对账的避坑手册

简介&#xff1a;《粮食收购管理系统》是一款面向中小型粮食收购站的人工智能信息管理系统&#xff0c;围绕收购业务提供库存监控、采购记录、销售统计等核心功能&#xff0c;并通过智能预测与图像识别辅助定价决策和质量检验&#xff0c;帮助基层粮站实现业务流程现代化与自动… · 2026/9/25 19:22:40

ASP+Access人才信息管理系统毕设实战:从环境搭建到功能扩展
ASP+Access人才信息管理系统毕设实战:从环境搭建到功能扩展

简介&#xff1a;这份资源是面向计算机专业毕业设计学生的ASPAccess网上人才信息管理系统完整项目包&#xff0c;适合需要完成毕设选题、搭建Web应用或学习动态网站开发的学习者。系统围绕求职招聘场景&#xff0c;涵盖用户注册登录、人才信息管理、招聘信息发布、模糊查询与匹… · 2026/9/25 19:22:40

小白程序员必看:用Python手写最小Agent,3分钟秒懂大模型核心原理(收藏版)
小白程序员必看:用Python手写最小Agent,3分钟秒懂大模型核心原理(收藏版)

本文从零开始手写Python Agent&#xff0c;拆解LLM、工具、循环三大核心机制&#xff0c;用最小代码示例帮助小白快速理解Agent本质。通过"思考-行动-观察"循环&#xff0c;阐述ReAct模式原理&#xff0c;并对比LangChain等框架的优劣。文章强调掌握Agent底层逻辑比死… · 2026/9/25 19:22:22

从Excel到自托管CRM:DeskcommCRM部署实战与踩坑记录
从Excel到自托管CRM:DeskcommCRM部署实战与踩坑记录

从去年开始&#xff0c;我们团队一直在用 Excel 加微信群管客户&#xff0c;客户一多就彻底乱套了。销售说找不到历史跟进记录&#xff0c;客服说客户在微信上问他问题&#xff0c;他根本分不清是哪条线索&#xff0c;我这边想汇总一个成交漏斗&#xff0c;得让运营手动导出三四… · 2026/9/25 19:22:16

小白程序员也能抓住的AI大模型红利,高薪就业指南!
小白程序员也能抓住的AI大模型红利,高薪就业指南!

文章指出AI岗位需求全面爆发&#xff0c;月薪70K的AI岗位随处可见&#xff0c;各行各业都在抢AI人才。AI大模型开发工程师等岗位的平均薪资比同类传统开发岗高出10%-30%。文章强调AI开发门槛没有想象中高&#xff0c;普通人经过系统实战学习也能胜任 最近刷招聘软件&#xff0c… · 2026/9/25 19:22:16

数值优化(Numerical Optimization)学习系列-03-共轭梯度方法(Conjugate Gradient)
数值优化(Numerical Optimization)学习系列-03-共轭梯度方法(Conjugate Gradient)

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views … · 2026/9/25 1:00:31

创维E900V22D刷机全攻略:S905L3SB芯片兼容性解析与救砖实战
创维E900V22D刷机全攻略:S905L3SB芯片兼容性解析与救砖实战

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views … · 2026/9/25 1:00:31

MQTT协议原理与Broker服务器搭建实战:从Mosquitto到EMQX
MQTT协议原理与Broker服务器搭建实战:从Mosquitto到EMQX

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views … · 2026/9/25 1:00:37

了解更多?预约专属演示

我们的顾问将为您一对一讲解产品与方案

企业微信二维码