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)都是二维数组中地址的不同表现形式。

posted @   吴然_O_o_o  阅读(305)  评论(0编辑  收藏  举报
编辑推荐:
· AI与.NET技术实操系列:基于图像分类模型对图像进行分类
· go语言实现终端里的倒计时
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
阅读排行:
· 分享一个免费、快速、无限量使用的满血 DeepSeek R1 模型,支持深度思考和联网搜索!
· 25岁的心里话
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· ollama系列01:轻松3步本地部署deepseek,普通电脑可用
· 按钮权限的设计及实现
点击右上角即可分享
微信分享提示