指针与多维数组深度剖析

简介: 源码 [root@luozhonghua ch10]# cat zippo11.c /* zippo1.c --  zippo info */ #include <stdio.h> int main(void) {     int b[3]={100,200,300}; int *p;p=b;     printf("b=%p,*b=%d,p=%p,*p=%d,p

源码

[root@luozhonghua ch10]# cat zippo11.c

/* zippo1.c --  zippo info */
#include <stdio.h>
int main(void)
{


    int b[3]={100,200,300}; int *p;p=b;
    printf("b=%p,*b=%d,p=%p,*p=%d,p+1=%p,*p+1=%d \n",b,*b,p,*p,p+1,*p+1);
    printf("---------------------------\n");


    int zippo[4][2] = { {2,4}, {6,8}, {1,3}, {5, 7} };
    printf("   zippo = %p,    zippo + 1 = %p\n",
               zippo,         zippo + 1);
    printf("zippo[0] = %p, zippo[0] + 1 = %p\n",
            zippo[0],      zippo[0] + 1);
    printf("  *zippo = %p,   *zippo + 1 = %p\n",
              *zippo,        *zippo + 1);
    printf("zippo[0][0] = %d\n", zippo[0][0]);
    printf("  *zippo[0] = %d\n", *zippo[0]);
    printf("    **zippo = %d\n", **zippo);
    printf("      zippo[2][1] = %d\n", zippo[2][1]);
    printf("*(*(zippo+2)) = %d\n", *(*(zippo+2)));
    printf("*(*(zippo+2) + 1) = %d\n", *(*(zippo+2) + 1));
    printf("---------------------------\n");
    printf("*(*(zippo+1)) = %d\n", *(*(zippo+1)));
    printf("*(*(zippo+1) + 1) = %d\n", *(*(zippo+1) + 1));
    printf("*(*(zippo)) = %d\n", *(*(zippo)));
    printf("*(*(zippo)+1) = %d\n", *(*(zippo)+1));
    return 0;

}

结果:

[root@luozhonghua ch10]# ./zippo11
b=0xbfda6dd0,*b=100,p=0xbfda6dd0,*p=100,p+1=0xbfda6dd4,*p+1=101
---------------------------
   zippo = 0xbfda6db0,    zippo + 1 = 0xbfda6db8
zippo[0] = 0xbfda6db0, zippo[0] + 1 = 0xbfda6db4
  *zippo = 0xbfda6db0,   *zippo + 1 = 0xbfda6db4
zippo[0][0] = 2
  *zippo[0] = 2
    **zippo = 2
      zippo[2][1] = 3
*(*(zippo+2)) = 1
*(*(zippo+2) + 1) = 3
---------------------------
*(*(zippo+1)) = 6
*(*(zippo+1) + 1) = 8
*(*(zippo)) = 2
*(*(zippo)+1) = 4


目录
相关文章
|
7月前
|
存储 算法 C语言
通过指针引用多维数组
通过指针引用多维数组
44 0
|
7月前
|
C语言
通过指针引用多维数组
通过指针引用多维数组
27 0
|
7月前
|
C语言
指针和多维数组
指针和多维数组
|
7月前
|
存储 编译器 C语言
C语言进阶教程(多维指针和多维数组)
C语言进阶教程(多维指针和多维数组)
78 0
|
7月前
|
BI
多维数组元素的指针访问方式
以二维数组为例介绍多维数组的指针访问方式。
62 0
|
人工智能 编译器 测试技术
一次性搞清数组指针、指针数组---从多维数组的本质上刨析(让你顿悟版)
一次性搞清数组指针、指针数组---从多维数组的本质上刨析(让你顿悟版)
39 0
|
存储 C语言 C++
C多级指针与多维数组
C多级指针与多维数组
25196 2
C多级指针与多维数组
指针和多维数组的关系(C Primer Plus第六版)
指针和多维数组的关系(C Primer Plus第六版)
63 0
|
人工智能 C++
通过 指针 引用 多维数组 详解
一:回顾多维数组地址知识 二:二维数组的有关指针 三:指向数组元素的指针变量 四:用指向数组的指针作为函数参数
118 0
|
C语言
【C 语言】数组 ( 多维数组做函数形参退化为指针过程 | int array[2][3] -> int array[][3] -> int (*array)[3] )
【C 语言】数组 ( 多维数组做函数形参退化为指针过程 | int array[2][3] -> int array[][3] -> int (*array)[3] )
166 0
【C 语言】数组 ( 多维数组做函数形参退化为指针过程 | int array[2][3] -> int array[][3] -> int (*array)[3] )