- 浏览: 279217 次
- 性别:
文章分类
最新评论
摘自:《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 591把结构体保存到文件中,用fwrite()函数: fwrite ... -
关于socket编程中基本函数介绍
2012-11-03 13:57 996源自:http://blog.sina.com.cn/s/bl ... -
C中需要注意的小问题
2012-09-27 08:59 7821.在用scanf()函数读入double型数值时要用%lf的 ... -
C中<ctype.h>库
2011-12-19 20:21 695标准库<ctype.h> 1 ... -
C中double类型数据的输入和输出
2011-12-19 10:04 12346double a; scanf(" ... -
C中printf()和scanf()函数说明
2011-12-16 19:58 1559下面是对printf()和scanf()函数的说明: ... -
C中转义序列及其含义
2011-12-15 20:27 942转义序列: 序列 ... -
C中各数据类型取值范围
2011-12-15 19:31 13641.标准头文件<limits.h>中包含了 ... -
C中常用的类型转换函数
2011-12-14 17:34 784源自:http://hi.baidu.com/hao_%BF% ... -
C语言格式化输出系统时间
2011-12-14 17:04 5898源自:http://blog.csdn.net/jiadeli ... -
C中目标代码文件,可执行文件和库
2011-12-14 10:19 1932C编程的基本策略是使用程序将源代码文件转换为可执行 ... -
vs2008下vc的库函数及头文件存放位置
2011-12-13 22:14 4504在写C/C++程序时总会在开头包含一些头文件,如:#inclu ... -
malloc()函数
2011-12-12 17:35 0待写 -
用C写的模拟掷骰子程序
2011-12-12 16:47 2320整理自:《C Primer Plus》第五版 此程序包 ... -
C中字符串的输入输出及相关函数
2011-12-27 21:59 3821//本节内容摘自对Stephen Prata的《C Prime ... -
指针的基本操作以及关于指针的注意事项
2011-12-11 17:42 895一. 指针的基本操作有:赋值(assignment),求值(v ... -
关于*与++的优先级
2011-12-11 16:53 1663C中一元运算符*和++具有相等的优先级,但它们在结合时是从右向 ... -
C中关于数组参数的传递
2011-12-09 11:43 893编写一个对数组进行操作的函数,目的是返回数组内所用元素的和。 ... -
C中有关数组的说明
2011-12-09 11:10 746下面介绍一下关于数组的一些说明: 在数组声明时必须 ... -
C语言中对sizeof()和strlen()的说明
2011-12-09 10:01 10931.sizeof函数 sizeof函数返回表达式所占的内存空 ...
相关推荐
C语言中指针引用多维数组的教学实践.pdf
此实例解释了new动态创建多维数组的用法,还有包涵了多维数组指针的用法···
多维数组与多级指针是初学者经常感觉迷糊的一个地方。超过二维的数组和超过二级的指针其实并不多用。但只要掌握一定的方法,理解多级指针和“多维”数组完全可以像理解一级指针和一维数组那样简单。
在C语言中数组和指针之间存在一些千丝万缕的联系,搞不清楚的情况下非常容易出错,在前一段时间我写过关于数组和指针的分析,但是还是存在很多不清楚的问题,特别是当出现一些复杂的问题时,这种情况更加的复杂。...
C/C++的函数中传递多维数组的各种方法,包括数组和指针的各种用法.
程序设计基础
C C++ WINDOWS win32 指针
在C++中,通过多维数据的指针作为函数参数传递源程序
动态数组和丢失了静态大小成为了array_base的数组维度不一样时,赋值引发 std::length_error异常,可以捕捉到, 比较也是这样 7.作为函数的参数 还举开头的那个例子 void foo(array_base<;int,2&...
如果要给二维数组(m*n)分配空间,代码可以写成下面: 代码如下:char **a, i; // 先分配m个指针单元,注意是指针单元 // 所以每个单元的大小是sizeof(char *) a = (char **) malloc(m * sizeof(char * )); // 再分配n...
本文给大家分享了C语言初学者入门讲座 第十二讲 多维数组的指针变量。
C语言多维数组与多级指针[参照].pdf
字符指针它是使用指针更改多维数组中的char值的代码
C语言数组与指针操作
比较实用的一个C语言编程的练习,其中包含多种存住形式,以及一些... //数组名 int dim; //数组维数 int *lower; //各维下界表指针 int *upper; //各维上界表指针 int *Constants; //各维常量因子表指针 }Array;
C++,C++指针,多维数组,C++,C++指针,多维数组
下面来讲讲多维数组与指针的关系。与普通数组一样,使用多维数组时,实际上将其自动转换为指向该数组第一个元素的指针
数组与指针 利用数组表示一组相关 数据项 声明数组、初始化数组、 应用数组中的单个元素 将数组传递给函数 声明和使用多维数组
今天在看C++prime plus的时候无意间看到了函数指针,这是个我很少涉及的地方。打算写一个小程序来熟悉一下。