C语言简介---通过指针引用多维数组
在理解C语言中的二维数组时,我们通常用矩阵的形式来表示二维数组,但这只是逻辑上的概念,但是在内存中,各元素是连续存放的,不是二维的,是连续的。
从二维数组的角度来看,a代表二维数组首元素的地址,现在的首元素不是一个简单的整型元素(以int a[3][4]为例),而是以四个整型元素所组成的一维数组,因为a代表的是首行的首地址(行号为0),a+1代表序列为1的行的首地址。
a[0]和*(a+0)等价,a[1]和*(a+1)等价,a[i]和*(a+i)等价。a[0]+1和*(a+0)+1都是&a[0][1]。
解析:a+1是二维数组a中序号为1的行的首地址(序号为0起算),而*(a+1)并不是a+1单元的内容值,因为a+1并不是一个变量的存储单元。也就谈不是它的内容。*(a+1)就是a[1],而a[1]是一维数组名,所以也是地址,它指向a[1][0]。a[1]和*(a+1)都是二维数组中地址的不同表现形式。
标签:
C语言
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· AI与.NET技术实操系列:基于图像分类模型对图像进行分类
· go语言实现终端里的倒计时
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 分享一个免费、快速、无限量使用的满血 DeepSeek R1 模型,支持深度思考和联网搜索!
· 25岁的心里话
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· ollama系列01:轻松3步本地部署deepseek,普通电脑可用
· 按钮权限的设计及实现