哈喽哈喽,它来咯,它来咯,接下来有白子寰给你讲解:二级指针 指针数组
目录
二级指针
二级指针的介绍
一图 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;
}
控制台输出及代码解释
***********************************************************分割线*****************************************************************************
完结!!!
感谢浏览和阅读。
等等等等一下,分享最近喜欢的一句话:“所有正确的事都有代价,但不能因为有代价就不去做”。
我是白子寰,如果你喜欢我的作品,不妨你留个点赞+关注让我知道你曾来过。
你的点赞和关注是我持续写作的动力!!!
好了划走把。