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;}图解这里我们模拟出了二维指针的效果但是行间并不连续所以这并不是真正的二维指针。目录数组名的理解使用指针访问数组一维数组传参的本质二级指针二级指针变量的解引用指针数组的理解指针数组模拟二维数组

相关新闻

RK3566 AIoT 网关适合什么轻量边缘智能场景

RK3566 AIoT 网关适合什么轻量边缘智能场景

一台 RK3566 盒子能启动 Linux、接入设备并跑通一个识别模型,并不等于它已经适合作为项目里的边缘节点。真正的问题不是“能不能跑”,而是业务高峰出现时,采集、推理、规则、存储和上报同时发生,关键任务还能否在规定时间内完成&a…

2026/9/26 21:50:06 阅读更多 →
Tailwind css 学习备忘

Tailwind css 学习备忘

flex布局,加在父元素上,这个父元素变成 flex 容器,它的直接子元素变成 flex 项目,且只影响直接子元素,默认直接子元素横向排列,从左到右。默认主轴水平方向,交叉轴垂直方向。justify-* 控制主轴…

2026/9/26 22:29:10 阅读更多 →
书签劫持+WebSocket:验证连接与资源指令下发链路解析

书签劫持+WebSocket:验证连接与资源指令下发链路解析

1. 一说到书签劫持,很多人第一反应就偏了提到“书签劫持”这四个字,大多数人的第一反应是浏览器收藏夹被篡改、主页被锁死、打开浏览器就跳到导航站这类问题。确实,这是最常见的用户侧感知,但如果你只停留在“收藏夹被塞了几个网址…

2026/9/26 21:49:41 阅读更多 →

最新新闻

永久在线CRM自建指南:Deskcomm部署与团队协作实操

永久在线CRM自建指南:Deskcomm部署与团队协作实操

最近朋友的工作室在找人搭客户管理系统,他上来就问了一句:“有没有那种免费的CRM?最好不用每个月交钱,客户资料也别放在别人服务器上。”这个问题我回答过好多回了,干脆把这一轮的调研和落地过程整理出来。我最后选的是…

2026/9/27 0:57:08 阅读更多 →
免费网站大全推荐:解决没人访问,靠性能优化破局

免费网站大全推荐:解决没人访问,靠性能优化破局

免费网站大全推荐:解决没人访问,靠性能优化破局 网站做好了没人访问,这是无数站长和运维人员最头疼的噩梦。你熬夜调通了代码,配置好了服务器,结果流量曲线平得像心电图停搏。别急着换域名或者砸钱投广告,问题往往出在底层。中国互联网络信息中心(CN…

2026/9/27 0:57:08 阅读更多 →
Substrate 运行时引擎:面向 agent 与云原生的可编程内核

Substrate 运行时引擎:面向 agent 与云原生的可编程内核

1. 项目概述:Substrate 不是“另一个区块链框架”,而是基础设施的范式转移你搜“substrate”时,首页弹出的几乎全是“Substrate 区块链开发”“Polkadot 生态入门”“用 Substrate 搭建自己的链”——这恰恰是它被严重误读的起点。Substrate …

2026/9/27 0:57:08 阅读更多 →
火狐网站开发好的插件对比评测:告别建站公司拖延症

火狐网站开发好的插件对比评测:告别建站公司拖延症

火狐网站开发好的插件对比评测:告别建站公司拖延症 改个需求建站公司拖一周,这种憋屈感只有做过项目的老板才懂。你以为是在等代码,其实是在等他们内部低效的流程和臃肿的架构。为了打破这个僵局,我花了三个月时间,对市面上主流的…

2026/9/27 0:57:08 阅读更多 →
避坑jsp网站建设项目实战pdf新手入门指南

避坑jsp网站建设项目实战pdf新手入门指南

避坑jsp网站建设项目实战pdf新手入门指南 改个需求建站公司拖一周,这种憋屈感相信不少老板都经历过。你以为只是改个按钮颜色,对方却让你等五天,美其名曰“测试流程长”。其实,这背后往往是技术栈的僵化和文档的缺失。对于想要自己掌控进度的…

2026/9/27 0:57:08 阅读更多 →
WorkBuddy + Flask + SQLite:个人开发者日更建站实战指南

WorkBuddy + Flask + SQLite:个人开发者日更建站实战指南

1. 为什么我选择 WorkBuddy Flask SQLite 这套组合1.1 从零建站这件事,工具选型决定了你后面要填多少坑做独立站这件事,我前前后后折腾过不少方案。最早用 WordPress,插件装了一堆,主题换了七八个,结果页面加载慢得离…

2026/9/27 0:56:08 阅读更多 →

日新闻

如何划分训练/验证集:Spirula Studio五种eval_mode策略详解

如何划分训练/验证集:Spirula Studio五种eval_mode策略详解

如何划分训练/验证集:Spirula Studio五种eval_mode策略详解 【免费下载链接】spirula-studio Cross-vendor 3D Gaussian Splatting trainer - video to splat to mesh, Vulkan or CUDA. 项目地址: https://gitcode.com/GitHub_Trending/sp/spirula-studio Sp…

2026/9/27 0:00:34 阅读更多 →
SEO怎么推广速查手册新手避坑实战指南

SEO怎么推广速查手册新手避坑实战指南

SEO怎么推广速查手册新手避坑实战指南 模板网站太丑不够用?别急着加滤镜,那是治标不治本。很多老板盯着后台流量掉得眼红,却还在纠结首页Banner的圆角是不是3像素。这就像穿着西装去挖土,姿势不对,努力白费。我整理这份 速查手册…

2026/9/27 0:00:34 阅读更多 →
FireRed-OpenStoryline少样本仿写深度解析:AI Agent如何复刻你的独特文案风格与节奏

FireRed-OpenStoryline少样本仿写深度解析:AI Agent如何复刻你的独特文案风格与节奏

FireRed-OpenStoryline少样本仿写深度解析:AI Agent如何复刻你的独特文案风格与节奏 【免费下载链接】FireRed-OpenStoryline FireRed-OpenStoryline is an AI video editing agent that transforms manual editing into intention-driven directing through natural language …

2026/9/27 0:00:34 阅读更多 →

周新闻

如何划分训练/验证集:Spirula Studio五种eval_mode策略详解

如何划分训练/验证集:Spirula Studio五种eval_mode策略详解

如何划分训练/验证集:Spirula Studio五种eval_mode策略详解 【免费下载链接】spirula-studio Cross-vendor 3D Gaussian Splatting trainer - video to splat to mesh, Vulkan or CUDA. 项目地址: https://gitcode.com/GitHub_Trending/sp/spirula-studio Sp…

2026/9/27 0:00:34 阅读更多 →
SEO怎么推广速查手册新手避坑实战指南

SEO怎么推广速查手册新手避坑实战指南

SEO怎么推广速查手册新手避坑实战指南 模板网站太丑不够用?别急着加滤镜,那是治标不治本。很多老板盯着后台流量掉得眼红,却还在纠结首页Banner的圆角是不是3像素。这就像穿着西装去挖土,姿势不对,努力白费。我整理这份 速查手册…

2026/9/27 0:00:34 阅读更多 →
FireRed-OpenStoryline少样本仿写深度解析:AI Agent如何复刻你的独特文案风格与节奏

FireRed-OpenStoryline少样本仿写深度解析:AI Agent如何复刻你的独特文案风格与节奏

FireRed-OpenStoryline少样本仿写深度解析:AI Agent如何复刻你的独特文案风格与节奏 【免费下载链接】FireRed-OpenStoryline FireRed-OpenStoryline is an AI video editing agent that transforms manual editing into intention-driven directing through natural language …

2026/9/27 0:00:34 阅读更多 →

月新闻

持续集成 流水线自动化与 声明式交付 实践:原型怎样变成可用功能

持续集成 流水线自动化与 声明式交付 实践:原型怎样变成可用功能

持续集成 流水线自动化与 声明式交付 实践:原型怎样变成可用功能分类:[AI/大模型]细分主题:AI 增强型 CI/CD 流水线自动化与 GitOps 实践:Agent 工作流、工具调用与任务拆解:从原型到生产的验收清单很多团队在尝试用大…

2026/9/25 20:29:43 阅读更多 →
容器编排 生产环境运维与排障实战:复盘记录怎样真正派上用场

容器编排 生产环境运维与排障实战:复盘记录怎样真正派上用场

容器编排 生产环境运维与排障实战:复盘记录怎样真正派上用场分类:[工程技术]细分主题:Kubernetes 生产环境运维与排障实战:可复制的项目复盘模板与决策记录大部分团队的事故复盘报告,最后都变成了躺在 Confluence 或钉…

2026/9/25 20:29:31 阅读更多 →
容器 容器化技术与镜像安全管理:核心链路应该先拆哪一步

容器 容器化技术与镜像安全管理:核心链路应该先拆哪一步

容器 容器化技术与镜像安全管理:核心链路应该先拆哪一步分类:[工程技术]细分主题:Docker 容器化技术与镜像安全管理:核心链路的逐步实现与关键代码取舍面对一个积累了五六年历史包袱的单体架构应用(包含 Web 接口、后台…

2026/9/26 22:52:30 阅读更多 →