`
luozhonghua2014
  • 浏览: 62632 次
文章分类
社区版块
存档分类
最新评论

指针与多维数组深度剖析

 
阅读更多

源码

[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


分享到:
评论

相关推荐

    C语言深度解剖

    第一章 关键字 1.1 最宽恒大量的关键字auto 1.2 最快的关键字register ...4.5 多维数组与多级指针 4.6 数组参数与指针参数 4.7 函数指针 第五章 内存管理 5.1 什么是野指针 5.2 栈堆静态区 5.3 常见内存错误与对策

    c语言深度剖析 c语言深度剖析

    我们将讨论一维、多维数组的使用,以及字符串的特性,包括字符串常量、字符串操作函数(如strcpy、strcat、strcmp等)的运用。同时,会介绍数组和指针的关系,以及如何通过指针操作数组。 结构体和联合体是C语言的...

    C语言深度剖析视频教程

    本教程会深入讲解一维、多维数组以及指针的原理和操作。你会了解如何通过指针进行动态内存分配,以及指针在数组、字符串和函数调用中的应用。这部分内容可能较难,但一旦掌握,将对你的编程技能有极大的提升。 ...

    C语言深度剖析 陈正冲

    1.6.3,指针变量与“零值”进行比较...............................................................................21 1.6.4,else 到底与哪个if 配对呢?.......................................................

    C语言深度剖析,相当不错的c语言材料

    掌握数组的动态分配、多维数组以及字符串操作函数(如strlen、strcpy、strcat等)是必备技能。 4. **结构体与联合体**:结构体是不同类型数据的组合,允许自定义复杂的数据类型。联合体则是共享内存空间的类型,...

    c语言深度剖析

    ### C语言深度剖析知识点梳理 #### 一、C语言的重要性及现状分析 - **背景介绍**:当前,很多计算机科学专业学生以及在职程序员虽然声称熟悉C语言,但在实际面试或工作中,却无法完整回答关于C语言的问题。这反映了...

    国家精品课程C语言教学

    4. **数组与指针**:这是C语言的一个关键特性,课程将详细阐述数组的使用、一维和多维数组的操作,以及指针的概念、操作和应用,包括指针与数组的关系。 5. **结构体与联合体**:讨论如何定义和使用自定义数据类型...

    C语言大全第4版

    4. **数组与指针**:这是C语言的一大特色,书中详尽解释了数组的使用、一维数组、二维数组和多维数组,以及指针的概念、指针运算和指针与数组的关系。 5. **结构体与联合体**:讨论了如何定义和使用结构体和联合体...

    c语言深度解剖中的相关程序代码详解

    此文件可能涵盖了数组与指针的关系,如如何通过指针访问数组元素,数组名作为函数参数时的传递方式,以及多维数组的处理。 4. pragmaPackTest.c `#pragma pack` 是一个预处理器指令,用于控制结构体成员的对齐方式...

    宋劲彬的嵌入式C语言一站式编程

    7. 指向数组的指针与多维数组 8. 函数类型和函数指针类型 9. 不完全类型和复杂声明 24. 函数接口 1. 本章的预备知识 1.1. strcpy与strncpy 1.2. malloc与free 2. 传入参数与传出参数 3. 两层指针的参数 4. 返回值是...

    InsideC#.rar

    5. **数组与集合**:包括一维和多维数组,以及List、Dictionary, TValue&gt;等集合类型。 6. **委托与事件**:C#中的委托是类型安全的函数指针,事件则是实现异步编程和回调机制的关键。 7. **Lambda表达式与LINQ**:...

Global site tag (gtag.js) - Google Analytics