源码
[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
分享到:
相关推荐
第一章 关键字 1.1 最宽恒大量的关键字auto 1.2 最快的关键字register ...4.5 多维数组与多级指针 4.6 数组参数与指针参数 4.7 函数指针 第五章 内存管理 5.1 什么是野指针 5.2 栈堆静态区 5.3 常见内存错误与对策
我们将讨论一维、多维数组的使用,以及字符串的特性,包括字符串常量、字符串操作函数(如strcpy、strcat、strcmp等)的运用。同时,会介绍数组和指针的关系,以及如何通过指针操作数组。 结构体和联合体是C语言的...
本教程会深入讲解一维、多维数组以及指针的原理和操作。你会了解如何通过指针进行动态内存分配,以及指针在数组、字符串和函数调用中的应用。这部分内容可能较难,但一旦掌握,将对你的编程技能有极大的提升。 ...
1.6.3,指针变量与“零值”进行比较...............................................................................21 1.6.4,else 到底与哪个if 配对呢?.......................................................
掌握数组的动态分配、多维数组以及字符串操作函数(如strlen、strcpy、strcat等)是必备技能。 4. **结构体与联合体**:结构体是不同类型数据的组合,允许自定义复杂的数据类型。联合体则是共享内存空间的类型,...
### C语言深度剖析知识点梳理 #### 一、C语言的重要性及现状分析 - **背景介绍**:当前,很多计算机科学专业学生以及在职程序员虽然声称熟悉C语言,但在实际面试或工作中,却无法完整回答关于C语言的问题。这反映了...
4. **数组与指针**:这是C语言的一个关键特性,课程将详细阐述数组的使用、一维和多维数组的操作,以及指针的概念、操作和应用,包括指针与数组的关系。 5. **结构体与联合体**:讨论如何定义和使用自定义数据类型...
4. **数组与指针**:这是C语言的一大特色,书中详尽解释了数组的使用、一维数组、二维数组和多维数组,以及指针的概念、指针运算和指针与数组的关系。 5. **结构体与联合体**:讨论了如何定义和使用结构体和联合体...
此文件可能涵盖了数组与指针的关系,如如何通过指针访问数组元素,数组名作为函数参数时的传递方式,以及多维数组的处理。 4. pragmaPackTest.c `#pragma pack` 是一个预处理器指令,用于控制结构体成员的对齐方式...
7. 指向数组的指针与多维数组 8. 函数类型和函数指针类型 9. 不完全类型和复杂声明 24. 函数接口 1. 本章的预备知识 1.1. strcpy与strncpy 1.2. malloc与free 2. 传入参数与传出参数 3. 两层指针的参数 4. 返回值是...
5. **数组与集合**:包括一维和多维数组,以及List、Dictionary, TValue>等集合类型。 6. **委托与事件**:C#中的委托是类型安全的函数指针,事件则是实现异步编程和回调机制的关键。 7. **Lambda表达式与LINQ**:...