从零开始学C语言系列之第八章《指向多维数组的指针》

往期回顾

1.【第一章】《认识C语言》
2.【第二章】C语言概述及基本知识1
3.【第二章】C语言概述及基本知识2
4.【第三章】字符串和格式化输入/ 输出
5.【第三章】 printf
6.【第三章】 scanf
7.【第三章】 putchar
8.【第三章】 getchar
9.【第三章】 sizeof
10.【第三章】 strlen
11.【第三章】 define
12.【第四章】运算符第一节
13.【第四章】运算符第二节
14.【第四章】运算符第三节
15.【第四章】运算符第四节
16.【第四章】类型转换
17.【第四章】函数与转化
18.【第五章】while
19.【第五章】for开篇
20.【第五章】for的灵活性
21.【第五章】逗号运算符
22.【第五章】do while
23.【第五章】循环选择
24.【第六章】if
25.【第六章】else if
26.【第六章】break
27.【第六章】continue
28.【第六章】break和continue的区别与作用
28.【第六章】switch
29.【第七章】函数复习
30.【第七章】函数参数
31.【第七章】函数中返回值
32.【第七章】递归
33.【第七章】指针引入
34.【第七章】指针简介
35.【第七章】指针简介2
36.【第八章】数组
37.【第八章】数组2
38.【第八章】多维数组
39.【第八章】指针与数组
40.【第八章】函数 数组 与指针
41.【第八章】使用指针形参
42.【第八章】指针操作
43.【第八章】const入门
44.【第八章】const 与指针
45.【第八章】指针和多维数组原理


文章目录

  • 往期回顾
  • 指向多维数组的指针
  • 指针的兼容性


指向多维数组的指针

#include <stdio.h>
int main(void)
{
    int zippo[4][2] = { {2,4}, {6,8}, {1,3}, {5, 7} };
    int (*pz)[2];
    pz = zippo;
    
    printf("   pz = %p,    pz + 1 = %p\n",
           pz,         pz + 1);
    printf("pz[0] = %p, pz[0] + 1 = %p\n",
           pz[0],      pz[0] + 1);
    printf("  *pz = %p,   *pz + 1 = %p\n",
           *pz,        *pz + 1);
    printf("pz[0][0] = %d\n", pz[0][0]);
    printf("  *pz[0] = %d\n", *pz[0]);
    printf("    **pz = %d\n", **pz);
    printf("      pz[2][1] = %d\n", pz[2][1]);
    printf("*(*(pz+2) + 1) = %d\n", *(*(pz+2) + 1));
    
    return 0;
}

在这里插入图片描述
  系统不同,输出的地址可能不同,但是地址之间的关系相同。如前所述,虽然pz是一个指针,不是数组名,但是也可以使用 pz[2][1]这样的写法。可以用数组表示法或指针表示法来表示一个数组元素,既可以使用数组名,也可以使用指针名:

zippo[m][n]==*(*(zippo +m)+ n)
pz[m][n]== *(*(pz +m)+ n)

指针的兼容性

指针之间的赋值比数值类型之间的赋值要严格。

​   例如,不用类型转换就可以把int类型的值赋给double类型的变量,但是两个类型的指针不能这样做。

在这里插入图片描述
在这里插入图片描述

相关推荐

最近更新

  1. TCP协议是安全的吗?

    2024-06-07 07:18:07       16 阅读
  2. 阿里云服务器执行yum,一直下载docker-ce-stable失败

    2024-06-07 07:18:07       16 阅读
  3. 【Python教程】压缩PDF文件大小

    2024-06-07 07:18:07       15 阅读
  4. 通过文章id递归查询所有评论(xml)

    2024-06-07 07:18:07       18 阅读

热门阅读

  1. MYSQL服务器系统变量的使用

    2024-06-07 07:18:07       8 阅读
  2. 深度学习 - 构建神经网络

    2024-06-07 07:18:07       8 阅读
  3. 删除MongoDB索引和缓存问题

    2024-06-07 07:18:07       8 阅读
  4. [Unity]播放音频卡顿问题

    2024-06-07 07:18:07       10 阅读
  5. iOS 实现蓝牙设备重连的四种方式

    2024-06-07 07:18:07       7 阅读
  6. Git常用指令

    2024-06-07 07:18:07       8 阅读
  7. 机器学习-降维算法,PCK,LDA,NMF,LLE

    2024-06-07 07:18:07       8 阅读
  8. npm发布自己的插件包

    2024-06-07 07:18:07       9 阅读