指针的指针笔记

指针在Wikipedia 上的定义

在計算機科學中,指標(英語:Pointer),是程式語言中的一類數據類型及其物件或變數,用來表示或儲存一個記憶體位址,這個位址的值直接指向(points to)存在該地址的對象的值。

如何理解

  • 指针是一个普通的变量或常量,但是它存储的是另一个变量或常量的地址;
  • 指针的指针和指针一样,它所存储的也是另一个变量或常量的地址,只不过那是个指针变量或指针常量
  • 指针的指针的指针等同样可以递归理解。
  • 函数的指针 和指针唯一的不同是所存储的是一个函数的入口,正像数组名指向数组的入口
  • 同样的,什么的指针,就是指向什么;

二维数组

下面是一个定义示例:

char a[10][100];

很明显它定义了十个一维字符数组 a[0][100], a[1][100] ... a[9][100]。
运用一维数组的知识,我们可以很容易理解,a[0], a[1] ... a[9] 是十个指针常量,分别指向每个字符数组的首地址。
它们在内存中是这样的
在内存里的样子

那么 a 是啥,它指向了 a[0] 所在的存储空间,是指向指针的指针。

结构体指针

我们知道我们可以用 结构名.成员 来引用某个特定结构中的成员。
对于结构体指针,假设 p 是一个指向结构的指针,可以用以下两种方法引用结构中的成员:

p->x;
/* p -> 结构成员*/
(*p).x;
/*这里小括号是必须的*/

它们的效果是相同的。

by SDUST weilinfox
转载请注明原文地址:https://www.cnblogs.com/weilinfox/p/12238613.html

posted @ 2020-01-28 18:56  桜風の狐  阅读(138)  评论(0编辑  收藏  举报