想要了解指针,就得先了解内存和地址。
我们电脑里面有一个硬件叫做内存条,他是用来存储用户输入或是程序的数据。
而地址就是存入内存的数据的位置。
内存就像现实中的宿舍有很多个房间,地址就是对应的门牌号。
数据在内存里面是以十六进制的形式存放的,地址的大小取决于是32位机器还是64位机器;
32位机器对应的地址大小是4个字节,64位机器对应的地址大小是8个字节;
指针变量
其实我们可以理解成: 指针 == 地址
我们创建一个变量的时候,实际就是向内存申请了一块空间,根据创建的变量的类型不同申请的空间大小就不一样,例如 int 类型的就是四个字节;
指针变量就是存储一个变量的地址的变量,这里我们要知道取地址符( & ),& 是用来取出某个变量地址用的;
那么下面演示一下如何创建指针变量
int main()
{
int a = 6;
int* pa = &a; //int* 是pa的指针类型,是整型指针变量。同样的还会有char* short* .......
return 0;
}
这样我们就把a变量的地址存放在pa里面了。
那么有什么用呢?实际上我们可以通过pa来取出存放在a里面的数据,这个时候我们要用到解引用操作符( * )
野指针
概念: 野指针就是指针指向的位置是不可知的(随机的、不正确的、没有明确限制的);