C 语言行指针与列指针详解

 我来答
科创17
2022-06-08 · TA获得超过5848个赞
知道小有建树答主
回答量:2846
采纳率:100%
帮助的人:167万
展开全部

首先我们来看下面的代码

上面这部分代码输出的结果是什么呢?

行指针:指的是一整行数据,不指向具体的元素.

列指针:指的是一行中某个具体元素.

我们可以理解成为行指针的具体元素,行指针理解为列指针的地址 他们可以相互的变化

*行指针 列指针

&列指针 行指针

讲解下上面的代码

a是这个“特殊的”一维数组的名称,也就是首地址,也就是第一个元素的地址,也就是第一行的首地址,是指首行一整行,并不是指某个具体元素。那么我们称之为“行指针”,

既然我们知道了a是行指针那么在我们所学习中的一个指针加1就是偏移一个单位,而a的单位是一行,所以p=a+1 即p指向了第二行,即p=a[1].

b = *p+1,p是存放的第二行的首地址,那么*p即拿到了第二行的首个元素的地址,那么 *p+1就是便宜一个int,因为此时*p就是一个int指针.所以b=*p+1 即 b=&a[1][1]

c = *a + 1; 根据上面所说的c=&a[0][1].

printf("a=%d ", **(a));这个就没啥好说了 **(a) 等同于 a[0][0].

根据上诉所说 输出结果

所以列指针指向的是某一行的具体元素,上面例子中的b和c

行指针指向的是指向一整行数据,不是指向具体的某个具体的数据.上面例子的a和p

行指针和列指针多应用于矩阵,在实际普通开发中比较少运营到,但是可以帮助对指针更深入地了解.

以上是8年开发经验对行指针和列指针的个人理解,欢迎大家讨论交流.

我会不断地分享我自己认为在C语言中比较难理解的知识点,欢迎大家关注点赞转发.

已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式