美文网首页
读书笔记-C语言-指针数组和指针的指针

读书笔记-C语言-指针数组和指针的指针

作者: 滕王阁序 | 来源:发表于2016-07-19 19:28 被阅读124次

1、一个数组,各元素都是指针变量,每元素保存一个地址,这样的数组称为指针数组。

定义指针数组:int *r[3];该语句表示定义了一个指针数组,数组名是r,它有3个元素。由于r前有*标志,数组每个元素都将是一个指针变量,分别保存一个地址。

指针数组的定义也可写为以下语句:int  *(r[3]);

注意:[]的优先级高于*([]与()优先级是相同的,都是最高的)。指针数组各元素的基类型必须相同,同一数组的各元素都要指向相同类型的变量。

2、由于指针变量都是占用4个字节,因此指针数组的每个元素必然也都占用4个字节,且与指针数组的基类型无关。举例:double  *dd[3];则dd[0]、dd[1]、dd[2]这三个指针变量也都占用4个字节,因为它们都保存一个地址。double 是指这些地址所指向的数据的类型,不是说dd[0]、dd[1]、dd[2]本身是double。

3、指针数组也是数组,普通数组的规律仍适用于指针数组。下面讨论指针数组的数组名r

(1)、r是数组名(指针数组的数组名)。

(2)、r是一个假想的“二级指针变量”,它“保存”另一指针变量的地址(地址的地址)。

(3)、指针变量r所“保存”的值为指针数组的首地址,也即元素r[0]的地址(二级地址)。

(4)、指针变量r本身的地址(r所在内存字节编号)是指针数组的地址,数值上与元素r[0]的地址相等。

(5)、r值不可被改变,是常量。

4、由于指针数组的数组名r是“第二类”的二级指针变量,与行指针不同,因此如定义int (*q)[4];也不能通过执行语句q=r;来保存r的值(两类二级之间也应看做不同的级)。如何保存r这种“第二类”的二级指针变量的值呢?需要定义另一种专用的指针变量:int   **s;即在定义指针变量时,在变量名前加上连续的两个**。这两个*都是标志,这种指针变量称为指向指针的指针。这种指针变量时第二类的二级指针变量,存放的也是二级地址,可专用于保存指针数组的数组名这种二级地址。

int  **s;这样的第二类二级指针变量或指针数组名+(-)n都是前进或后退4*n个字节。

指针数组名+(-)n或指针的指针+(-)n=地址值+(-)4*n

无论是指针数组名r还是指针的指针s,它们同样适用于语法糖公式:r[i]<=>*(r+i)、s[i]<=>*(s+i)

5、int  **s;这样的指针变量(指向指针的指针)与指针数组名r也可以是等效的。在程序中不仅可用数组名r访问指针数组的各个数组元素,还可以用指针变量s来访问。s[0]就是r[0]   s[1]就是r[1].

相关文章

  • 指针数组和数组指针

    指针数组|存储指针的数组 在C语言和C++语言中,数组元素全为指针的数组称为指针数组。 例如:int *p[10]...

  • C语言 - 中

    总目录 前言 本文介绍C语言的指针:一、指针介绍二、指针使用三、数组指针和指针数组 函数指针和指针函数 环境 1...

  • 02-C语言的指针

    02-C语言的指针 目标 C语言指针释义 指针用法 指针与数组 指针与函数的参数 二级指针 函数指针 指针在C中很...

  • C语言21 指针数组与数组指针

    C语言21 指针数组与数组指针 指针数组的定义 指针数组的赋值 结构体指针数组 分析下面的代码 数组指针的定义 数...

  • C语言

    C 指针、指针变量、函数指针、指针函数、指针数组、数组指针、C 数组

  • 指针数组&数组指针

    本节继续讨论C语言中的指针。 指针数组&数组指针 先理解一下什么是指针数组和数组指针,指针数组的实质是个数组,这个...

  • 再学C语言之指针要点

    C之字符数组 C之指针引用字符串 C语言之数组指针 数组指针:首先它是一个指针,它指向数组指针数组:首先它是一个数...

  • ndk02_指针运算,函数参数与指针,数组指针,二级指针

    一、指针运算 二、数组与指针 三、指针和函数参数 四、指针数组 五、 二级指针 六、知识要点 1、C语言中的函数如...

  • 笔记 | 计算机系统基础:07-一次搞懂数组和指针!

    零. 课程要点: 数组 指针 指针数组 数组指针 指针一直以来都是C语言学习者头疼的东西,&和*单个看的时候都还好...

  • Go语言 指针

    指针 概念 Go语言的指针和C语言一样也是用来保存地址的变量 格式 普通指针 指向数组的指针 注意点 GO语言中只...

网友评论

      本文标题:读书笔记-C语言-指针数组和指针的指针

      本文链接:https://www.haomeiwen.com/subject/blgmjttx.html