指针
变量是一个存储数据的容器,可以把它想象成一个盒子,你可以在里面放东西(数据)。如果每天都随身携带一堆盒子肯定不太方便。一个有效的解决途径就是把这些盒子放在某个地方,并把这些盒子所在的位置(地址)记在卡片上,需要使用某个变量时,根据卡片记载的地址去找到变量即可。在C++中,指针就是类似卡片的特殊变量,他存储着另一个变量的内存地址。
在计算机中,内存就像是一个非常巨大的田字格。程序运行时用到的所有数据(包括变量、数组、结构体、对象等等)和指令,都存储在这些方格中。因此就需要内存地址定位每个数据所在的位置。但是光有地址是不够的,因为每个格子都长得一模一样,如果只知道数据所在的位置,而不说明数据所占的范围是无法准确访问数据的。所以在确定数据所在内存的地址同时,还要说清楚这个数据占用几个“格子”。这就是数据类型,现在我们终于明白在学习数据类型时一直强调占几个字节了。因此定义指针的时候,除了明确说明他是指针以外,还需要指定具体的数据类型,这个数据类型就是起到告诉你这个数据占几个“格子”的作用。
1.定义指针变量
int *p;
这里的p就是指针变量,他与定义变量的区别是在类型和变量之间多了一个“*”。
这里需要特别注意的是,指针变量记录的地址,如果没有初始化就直接使用会十分危险。所以我们为了保险起见,在定义指针变量时,会让他指向一个特殊的位置。
int *p = NULL;
NULL是一个宏,相当于0。也就是让指针指向0号地址。
