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 语言行指针与列指针详解的主要内容,如果未能解决你的问题,请参考以下文章