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

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了C 语言行指针与列指针详解相关的知识,希望对你有一定的参考价值。

参考技术A

首先我们来看下面的代码

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

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

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

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

*行指针 列指针

&列指针 行指针

讲解下上面的代码

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语言中比较难理解的知识点,欢迎大家关注点赞转发.

C语言 怎样让一个指针的内容传给一个变量

如果你定义了一个指针
int
*p;
然后你给他赋值,他必须先指向一个变量
int
a;
p=&a;
然后
*p就代表a的值
了,*是取值的意思
*p就代表把p指向变量的值取出
这样*p可以当普通变量使用了
int
b;
b=*p;
这样就把p指向的变量a的值赋给了变量b
参考技术A int
x,y,*p,*p1;
p=&x;
//x的地址送指针变量p
p1=p;
//指针变量p的内容送另一指针变量,p1也指向x了
x=5;
y=*p;
//p指向的单元的内容送另一变量,y=5了
参考技术B 首先,你要明白
p的类型
dlinklist
*
p;
指针p指向的类型是dlinklist
他存放的是这个指向这个结构体的地址
p->next->next
是指向下一个节点!
参考技术C 比如:
i
是一个指针,b是一个变量.我要取
i
这个指针里面的值,那么就这样.
b
=
*i;

以上是关于C 语言行指针与列指针详解的主要内容,如果未能解决你的问题,请参考以下文章

C语言指针选择法排序问题

C语言,指针问题

C语言指针问题171

C语言指针/引用/取值

关于C语言指针的问题

关于C语言指针的问题,希望高手帮忙解答一下