- 浏览: 283074 次
- 性别:
文章分类
最新评论
摘自:《C primer plus》
指针和多位数组
假设声明如下:
int zippo[4][2];
数组名zippo同时也是数组首元素的地址。在本例中能够,zippo的首元素本身又是包含两个int的数组,因此zippo也是包含两个int 的数组的地址。下面从指针属性进一步分析:
- 意味zippo是数组首元素的地址,所以zippo的值和&zippo[0]相同。另一方面,zippo[0]本身是包含两个整数的数组,因此zippo[0]的值同其首元素(一个整数)的地址&zippo[0][0]相同。简单地说,zippo[0]是一个整数大小对象的地址,而zippo是两个整数大小对象的地址。因为整数和两个整数组成的数组开始与同一个地址,因此zippo和zippo[0]就有相同的数值。
- 对一个指针(也即地址)加1,会对原来的数值加上一个对应类型大小的数值。在这方面,zippo和zippo[0]是不一样的,zippo所指向对象的大小是两个int,而zippo[0]所指向对象的大小是一个int。因此zippo+1和zippo[0]+1结果不同。
- 对一个指针(也即地址)取值(使用运算符*或者带有索引的[]运算符)得到的是该指针所指向对象的数值。因为zippo[0]是其首元素zippo[0][0]的地址,所以*(zippo[0])代表存储在zippo[0][0]中的值,即一个int数值。同样,*zippo代表其首元素zippo[0]的值,但是zippo[0]本身就是一个int数的地址,即&zippo[0][0],因此*zippo是&zippo[0][0]。对着两个表达式同时应用取值运算符将得到**zippo等价*&zippo[0][0],后者简化后即为一个int数zippo[0][0].简言之,zippo是地址的地址,熏药两次取值才可以得到通常的数值。地址的地址或指针的指针是双重间接(double indirection)的典型例子。
发表评论
-
C中结构体
2013-01-09 15:47 615把结构体保存到文件中,用fwrite()函数: fwrite ... -
关于socket编程中基本函数介绍
2012-11-03 13:57 1030源自:http://blog.sina.com.cn/s/bl ... -
C中需要注意的小问题
2012-09-27 08:59 8121.在用scanf()函数读入double型数值时要用%lf的 ... -
C中<ctype.h>库
2011-12-19 20:21 718标准库<ctype.h> 1 ... -
C中double类型数据的输入和输出
2011-12-19 10:04 12392double a; scanf(" ... -
C中printf()和scanf()函数说明
2011-12-16 19:58 1589下面是对printf()和scanf()函数的说明: ... -
C中转义序列及其含义
2011-12-15 20:27 973转义序列: 序列 ... -
C中各数据类型取值范围
2011-12-15 19:31 13891.标准头文件<limits.h>中包含了 ... -
C中常用的类型转换函数
2011-12-14 17:34 815源自:http://hi.baidu.com/hao_%BF% ... -
C语言格式化输出系统时间
2011-12-14 17:04 5932源自:http://blog.csdn.net/jiadeli ... -
C中目标代码文件,可执行文件和库
2011-12-14 10:19 1955C编程的基本策略是使用程序将源代码文件转换为可执行 ... -
vs2008下vc的库函数及头文件存放位置
2011-12-13 22:14 4569在写C/C++程序时总会在开头包含一些头文件,如:#inclu ... -
malloc()函数
2011-12-12 17:35 0待写 -
用C写的模拟掷骰子程序
2011-12-12 16:47 2345整理自:《C Primer Plus》第五版 此程序包 ... -
C中字符串的输入输出及相关函数
2011-12-27 21:59 3841//本节内容摘自对Stephen Prata的《C Prime ... -
指针的基本操作以及关于指针的注意事项
2011-12-11 17:42 916一. 指针的基本操作有:赋值(assignment),求值(v ... -
关于*与++的优先级
2011-12-11 16:53 1723C中一元运算符*和++具有相等的优先级,但它们在结合时是从右向 ... -
C中关于数组参数的传递
2011-12-09 11:43 920编写一个对数组进行操作的函数,目的是返回数组内所用元素的和。 ... -
C中有关数组的说明
2011-12-09 11:10 787下面介绍一下关于数组的一些说明: 在数组声明时必须 ... -
C语言中对sizeof()和strlen()的说明
2011-12-09 10:01 11181.sizeof函数 sizeof函数返回表达式所占的内存空 ...
相关推荐
本文将深入探讨C++中的指针和多维数组,这对于理解和编写高效、灵活的C++代码至关重要。 首先,让我们谈谈指针。在C++中,指针是一个变量,它存储了一个内存地址,这个地址指向另一个变量。理解指针的基本操作是...
本文主要讲解了程序设计中多维数组的概念和实现,包括多维数组的定义、元素的地址计算、指针变量的使用等方面的内容。 在程序设计中,多维数组是一种常用的数据结构,用于存储和处理大量的数据。多维数组可以看作是...
在多维数组操作中,指针可能用于高效地遍历和操作数组元素。 - “RtlCopyMemory”和“RtlMoveMemory”是Windows API中的内存操作函数,它们分别用于复制和移动一段内存区域。在易语言中调用这两个函数,可能是在...
C/C++中多维数组指针作为函数参数传递程序 在 C++ 中,多维数组指针作为函数参数传递是非常常见的编程技术。本文将详细介绍如何在 C/C++ 中将多维数组指针作为函数参数传递,並对相关知识点进行详细解释。 多维...
### C语言中指针引用多维数组的教学实践 #### 一、指针在C语言中的重要性 C语言是一种基础且重要的编程语言,被众多院校作为程序设计的入门语言。然而,C语言也因其语法的灵活性和变化多端的特点而被认为难以掌握...
在C/C++编程中,多级指针和多维数组是两种高级概念,它们在处理复杂数据结构和大型数据集时特别有用。然而,对于初学者来说,它们可能显得复杂和难以理解。本文将深入解释这两种概念,帮助你像理解一级指针和一维...
本实例将深入探讨如何使用`new`运算符来动态创建多维数组,以及如何处理多维数组指针。 首先,让我们了解`new`运算符的基本用法。`new`是C++中的一个关键字,用于在堆上分配内存。当我们声明一个数组时,可以使用`...
在C语言中数组和指针之间存在一些千丝万缕的联系,搞不清楚的情况下非常容易出错,在前一段时间我写过关于数组和指针的分析,但是还是存在很多不清楚的问题,特别是当出现一些复杂的问题时,这种情况更加的复杂。...
在本课程中,我们将深入探讨多维数组和多维指针的使用,这对于理解和编写复杂的程序至关重要。多维数组可以被视为数组的数组,通常用于处理二维或更高维度的数据,比如矩阵或图像。而多维指针则是指针变量,它能够...
本文将介绍在 C/C++ 中传递多维数组的各种方法,包括数组和指针的各种用法。 方法一:使用二维数组 在 C/C++ 中,可以使用二维数组来传递多维数组。例如,在上面的示例代码中,我们定义了一个二维数组 `score[4][4...
在C#编程语言中,数组是存储相同类型数据的基本结构之一,它们被广泛应用于各种场景。...而在多维数据处理中,多维数组提供了直观的语法和良好的性能表现。开发者应根据实际情况权衡各种因素,选择最适合的数组类型。
指针和多维数组有着紧密的关系,多维数组可以被看作是一种特殊的指针,指针可以指向多维数组的元素。例如,int x[3][4]; int *pa = &x[0][0];这里,pa是一个整型指针,指向多维数组x的第一个元素。 八、指针数组 ...
多维数组的指针变量可以用来访问多维数组的元素。例如,unsigned char a[3][4];其中,a 是一个二维数组,a[0],a[1],a[2] 是三个一维数组,每一个一维数组又含有四个元素。数组及数组元素的地址表示可以通过以下...
在C语言中,指针和数组是两种非常重要的数据结构,它们可以...以上内容详细阐述了C语言中数组指针和指针数组的概念,以及如何通过指针操作数组,包括一维数组和多维数组。理解这些概念对于编写高效的C程序至关重要。
二级指针常用于处理多维数组,尤其是二维数组。在二维数组中,第一层索引通常代表行,第二层索引代表列。如果我们有一个`int arr[3][4]`的二维数组,一个二级指针`int **ptr`可以用来遍历这个数组,例如`ptr = arr`...
这个项目可能涵盖了数组的动态分配、多维数组的遍历技巧、嵌套循环的应用,以及可能涉及到的一些高级主题,比如指针操作和内存管理。这对于提升你的编程技能,特别是处理复杂数据结构的能力非常有帮助。
动态数组和丢失了静态大小成为了array_base的数组维度不一样时,赋值引发 std::length_error异常,可以捕捉到, 比较也是这样 7.作为函数的参数 还举开头的那个例子 void foo(array_base<;int,2&...
在本实验中,我们主要探讨的是“NJUCM-数据结构课程4”的实验四,其主题聚焦于字符串和多维数组。这两个数据结构是计算机科学基础中的重要概念,尤其是在编程和算法设计中不可或缺。 字符串是计算机科学中处理文本...
总结来说,“1.8编程基础之多维数组_08矩阵加法”不仅介绍了多维数组和矩阵加法的编程实现,还涉及了信息学奥林匹克竞赛的培训内容,这些内容为竞赛提供了全方位的技能和知识储备,帮助学生在编程和算法领域打下坚实...