前言
欢迎来到我的博客
个人主页:北岭敲键盘的荒漠猫-CSDN博客
本文整理c语言中指针的相关知识点。
指针概念
指针存储的就是数据的地址。
直观理解:
李华家是北洋路130号1单元101
用变量处理数据:
我们去李华家拿数据。
用指针处理数据:
我们去北洋路130号1单元101拿数据。
本质上他们都是一样的数据,不过就是不同的叫法罢了。
指针变量的定义
我们可以用以下形式进行定义。
这三种形式其实选一个就可以,都是定义p指针。
当然这是在devc环境中的,在vscode中的话他会统一帮你整理成为。
但其实是都可以。
取、解指针符号与指针绑定
取址符号&
符号&的作用是获取变量的地址。
#include <stdio.h>int main()
{int a = 5;printf("%d\n", a);printf("%d", &a);
}
加上这个符号后其实就是取的是这个变量的地址。
指针绑定
我们上面都是定义了这个指针,但是他像是没有初始化的变量一样。
这时我们需要给指针绑定一个变量的地址。
让程序知道,这个地址是李华家的地址。
#include <stdio.h>int main()
{int a = 5;int *p;p = &a;printf("%d\n", &a);printf("%d\n", p);
}
通过上述方法就可以让程序知道我们这个指针p指向的就是a变量的地址了。
解址符号*
没错,解址符号还是他。
&是取址,*是解址,也就是说,&可以跟*相互抵消。
#include <stdio.h>int main()
{int a = 5;int *p;p = &a;printf("%d\n", *p);
}
上面那个案例中,我们用*就可以看到p指针对应的a地址中的值了。
数组指针
我们定义数组本来就是一个地址。
我们对这个数组指针进行解指针的时候,他实际上就是数组的第一个数据。
那么我们想要获取下一个数据的话,就可以使用指针的加减操作。
也可以专门定义一个数组,来存储指针指向的索引,然后对这个指针进行修改。