魔法指针 之 二级指针 指针数组

简介: 魔法指针 之 二级指针 指针数组

二级指针


二级指针的介绍

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

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

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;
}

控制台输出及代码解释

目录
相关文章
|
4天前
|
存储
一篇文章了解区分指针数组,数组指针,函数指针,链表。
一篇文章了解区分指针数组,数组指针,函数指针,链表。
11 0
|
10天前
|
编译器 C语言
【C语言】指针篇-深入探索数组名和指针数组- 必读指南(2/5)
【C语言】指针篇-深入探索数组名和指针数组- 必读指南(2/5)
|
2月前
|
搜索推荐 C语言
指针与数组
指针与数组
53 9
|
2月前
|
算法 Java
双指针在数组遍历中的应用
文章深入探讨了双指针技术在数组遍历中的应用,通过实战例子详细解释了快慢指针和首尾指针的不同用法,并提供了解决LeetCode相关问题的Java代码实现。
|
2月前
|
存储 程序员 C语言
指针的高级应用:指针数组、数组指针、函数指针等。
指针的高级应用:指针数组、数组指针、函数指针等。
89 0
|
3月前
|
运维
开发与运维数组问题之指针的加减法意义如何解决
开发与运维数组问题之指针的加减法意义如何解决
39 7
|
3月前
|
C++ 索引 运维
开发与运维数组问题之在C++中数组名和指针是等价如何解决
开发与运维数组问题之在C++中数组名和指针是等价如何解决
24 6
|
3月前
|
存储 C++ 运维
开发与运维数组问题之指针的定义语法如何解决
开发与运维数组问题之指针的定义语法如何解决
28 6
|
4月前
|
编译器 C语言
指针进阶(数组指针 )(C语言)
指针进阶(数组指针 )(C语言)
|
4月前
|
C语言
【C语言】:详解函数指针变量,函数指针数组及转移表
【C语言】:详解函数指针变量,函数指针数组及转移表
52 2