行指针的理解

对于2维数组来讲,可以理解成数组的数组。

以下面的数组为例:
int a[8][4] 
a是数组首元素的地址,那么作为2维数组来讲,数组首元素是什么呢?
2维数组的首元素还是个数组-----一个包含4个int的一维数组。

对于这个包含4个int的一维数组来讲,其数组名为a[0],首元素地址为a[0],
也即a[0]和a都是个地址,而且数值相同,但他们意义不同,一个是一维数组的首元素地址,一个是二维数组首元素的地址。

*a代表其首元素的值,其首元素为a[0],而a[0]又是个地址,值为
&a[0][0] ,即*a就是&a[0][0],进行取值运算,**a就是*&a[0][0],即
**a就是a[0][0],所以说,a是地址的地址。*a虽然是元素,但他还是个地址。

时间: 2024-10-17 11:20:51

行指针的理解的相关文章

顿悟 - 对指针的理解

接触C语言也快两年了,对指针的理解也一直迷迷糊糊,虽然能用指针解决一些问题,但是对于复杂一点的问题,如两级指针的运用,却感到力不从心,无法做到运用自如,两下子就被搞得晕乎乎的了,究其原因,还是对于指针的理解不深刻导致的. 今天在回顾链表的创建时遇到了一些想不通的情况,于是下了“不到黄河心不死”的决心要把指针弄懂,弄透,终于对指针的理解有了质的提高,发现我以前对指针的理解大错特错了,于是将今天所悟记录下来,方便日后回顾. 如下: typedef struct _node { int data; s

【C语言学习】指针再理解(一)

★内存和地址 内存的基本单位是字节,那么内存就可以按字节进行编址,就是给组成内存的所有连续的字节安排地址.其中一个最恰当的比喻就是房子与门牌号,假设有20间连续的房子,从最左边(或者左右边)开始分配门牌号1~20,给内存中字节分配的地址就相当于门牌号,字节就相当于房间.字节的容量只能存储一个字符.那么,内存是如何存储比字符更大的数据呢,比如:整型数据.浮点型数据? ★更大的内存单元 为了存储更大的数据,就会把两个字节或者跟多的字节合在一起组成更大的内存单元.比如内存可以以"字"为单位来

函数指针 行指针 指针数组

收拾房间,翻出一张信纸,想起来是以前看书时的笔记.如下: typedef double  ( * fun-ptr ) ( int ); fun-ptr 指向"拥有一个int形参并返回double"的函数的指针.类比想象: double  fun-name ( int  a ); 行指针: double  ( *  data ) [ 5 ]; data是一个指针,它指向含有5个double的数组.类比想象:double  data-array [5]; double  * data [

说说对C语言指针的理解

指针困扰了无数学习编程的人,或许你的老师会告诉你,指针比较难学. 然而,不要被吓到,本宝宝就是当时被老师的话唬住所以学习指针那章的时候都没心情听课.(说得像讲别的内容时我听了似的,just kidding) 导致了学习链表的时候各种卧槽. *************************** 基本介绍 ************************** 程序中数据的使用往往是以变量的形式出现,每个变量都对应若干存储单元,变量的值存储在存储单元中,通过对变量的引用和赋值就可以使用或修改存储在存

JavaScript——对this指针的理解

在我们声明一个函数时,每个函数除了有定义时的parameters(形参),自身还会有额外的两个参数,一个是this,一个是arguments(实参).arguments就是函数实际接受到的参数,是一个类数组.arguments我只做个简略的介绍,重点我们放在this指针上. 在面向对象变成中,this十分重要,它的值取决于调用的模式.而在JavaScript中,一共有4中调用模式:方法调用模式.函数调用模式.构造函数调用模式.apply调用模式. 方法调用模式 当一个函数是作为一个对象的属性时,

c语言函数指针的理解与使用

转载:http://www.cnblogs.com/haore147/p/3647262.html 1.函数指针的定义 顾名思义,函数指针就是函数的指针.它是一个指针,指向一个函数.看例子: A) char * (*fun1)(char * p1,char * p2); B) char * *fun2(char * p1,char * p2); C) char * fun3(char * p1,char * p2); 看看上面三个表达式分别是什么意思? C)这很容易,fun3是函数名,p1,p2

1、指针(理解、使用)

1.指针/指针变量的定义 地址 内存单元的编号 从零开始的非负整数 范围:4G[0~4G-1] 指针/指针变量 内存区的每一个字节都有一个编号,这就是“地址” 指针的实质就是内存“地址”,指针就是地址,地址就是指针 指针就是内存单元的编号 指针变量就是存放内存单元编号的变量,或者说指针变量就是存放地址的变量,指针和指针变量是两个不同的概念 也可这样理解: 编号(地址):内存中每一个字节分配一个号码 定义一个变量,存放上面的号码,这样的变量叫做指针变量 但是要注意:通常我们叙述时会把指针变量简称为

Delphi指针运用理解

现在是面向对象漫天飞的年代了,大家都在在谈面向对象编程.Java对指针“避而不谈”,C#虽然支持指针运用,但是也淡化处理. 然而,指针还是好完全掌握为妙,省得在开发过程碰钉子,至于对指针的运用在于开发人员的存乎于心,运用得当.指针运用的不好,不要怪开发语言及其机制.下面谈到的是在Delphi中指针的运用,至于其他语言,指针的思想是相通的. 指针是一种数据类型,和编程语言中其它的类型一样,是一种类型的区分,比如 Integer 是带符号的整型,在32位X86机中,是用4个字节表示,而指针也是用4个

如何编写Dll(用命令行编译加深理解)

DLL的优点 简单的说,dll有以下几个优点: 1)      节省内存.同一个软件模块,若是以源代码的形式重用,则会被编译到不同的可执行程序中,同时运行这些exe时这些模块的二进制码会被重复加载到内存中.如果使用dll,则只在内存中加载一次,所有使用该dll的进程会共享此块内存(当然,像dll中的全局变量这种东西是会被每个进程复制一份的). 2)      不需编译的软件系统升级,若一个软件系统使用了dll,则该dll被改变(函数名不变)时,系统升级只需要更换此dll即可,不需要重新编译整个系