ARTICLE DETAIL

建站实战干货

来自一线的建站与推广经验沉淀,每一条都经过真实交付验证。

2024龙年特别篇 -- 魔法指针 之 二级指针 指针数组

2026/8/24 7:58:58 拓冰建站 浏览量
2024龙年特别篇 -- 魔法指针 之 二级指针 指针数组

哈喽哈喽,它来咯,它来咯,接下来有白子寰给你讲解:二级指针 指针数组

 

目录

二级指针

二级指针的介绍

一图 KO 二级指针 

二级指针的运算

指针数组

概念

 指针数组模拟二维数组

 整形指针数组


二级指针

二级指针的介绍

 在介绍时,我们先介入一段代码

然后我根据代码一图叫你理解二级指针

int main()
{int a = 10;int* p = &a;int** pa = &p;return 0;
}

一图 KO 二级指针 

二级指针的运算

解引用

 还是刚刚的代码,我在此基础上添加了解引用操作和打印a值解引用前后信息

操作指令:把原本 a=10 改成 a=6

下图我标明了两代码的区别附加控制台输出

 

 *pa通过对pa中的地址进行解引用,找到pa,*pa访问的是pa;

**pa先通过*pa找到pa,然后对pa进行解引用操作,*pa访问的是pa.

指针数组

概念

是存放指针的数组

指针数组的每个元素是用来存放地址(指针)的

指针数组的每个元素是地址,可以指向同一块区域

 指针数组模拟二维数组

为什么叫模拟?

因为指针数组并不是真正的数组,数组是连续存放的

看下图👇

 

 整形指针数组

使用指针数组一次性在控制台打印三个数组的内容

 

int main()
{int a1[4] = { 1,2,3,4 };int a2[4] = { 5,6,7,8 };int a3[4] = { 9,10,11,12 };int* p[3] = { a1,a2,a3 };int i = 0;for (i = 0; i < 3; i++){int j = 0;for (j = 0; j < 4; j++){/*输出方式一*/printf("%-4d ", p[i][j]);/*输出方式二*///printf("%-4d ", *(*(p + i) + j));}printf("\n");}return 0;
}

控制台输出及代码解释 

 

 

 

 ***********************************************************分割线*****************************************************************************
完结!!!
感谢浏览和阅读。
等等等等一下,分享最近喜欢的一句话:

“所有正确的事都有代价,但不能因为有代价就不去做”。

我是白子寰,如果你喜欢我的作品,不妨你留个点赞+关注让我知道你曾来过。
你的点赞和关注是我持续写作的动力!!! 
好了划走把。