一.指针是什么
通俗的讲,指针就是地址,其存在的意义就像宾馆房间的序号一样是为了更好的管理空间。
如下图:
如上图所示,指针就是指向内存中的一块空间,也就相当于地址
二.一个指针的大小是多少
之前我们学习过,如何使用 sizeof 去计算类型所占空间的字节大小,所以接下来尝试使用该“关键字”计算各种类型指针所占空间大小
这里定义了三个不同类(分别是Int char float)但为什么计算出的结果都是 4 呢?
之前我们学习的时候(char是1个字节,int是四个字节)但这里为什么没有区别?
其实,无论什么类型的指针,他所占的空间大小是由计算机来决定的(32位计算机是四个字节,64是八个字节!)那么问题来了,既然所占空间的字节大小都一样,那么为什么还要区分类别?有什么意义?接下来让我们继续探讨这个问题
三.指针类型
意义:
(1)决定了指针“解引用”的权限有多大
解引用:指定义了一个指针变量之后对其进行解引用的操作,等同于将其变为一个普通的变量。具体操作如下:
int a = 10; int* pa = &a; *pa = 20;//次数就是指针解引用的操作,此时的*pa就相当于一个普通的int型的变量
上述代码就是“解引用”
权限的大小也就是指针访问空间的大小,比如 int 型可以访问四个字节,char 型可以访问一个字节。
(2)决定了指针的“步长”
也就是指针走一步可以走多长,比如 int 类型的指针一次可以走四个字节,char 一次可以走一个字节
为了更好的理解上图,请看下图: