Skip to content

2.7.1 指针是什么

2.7.1 指针是什么

好吧,开始写这一小节的时候,我就有点没绷住 想必你在看到这里前已经听了很多各种各样的话来说c/cpp指针有多么多么难 甚至有一些将指针妖魔化的言论

唉,其实好好学都没问题的

指针的直观认识

什么是指针?

其实最直观、通俗来说: 我们现在创建一个变量,这个变量的地址就是指针

对,地址就是指针

先这么理解

指针变量

好,现在有一个类型的变量,赋值就是赋的地址 这个变量就是指针变量

指针变量的定义:

int a = 10;
int* p = &a;
就是多了一个取地址符(取的是变量的地址)和一个星号

像上面这样,我们就创建了一个int指针类型的指针变量,其值是a的地址 也可以说int指针 p 指向 a 除此之外,指针变量也可以赋值为NULL,也就是什么都不指,这是安全的。 当然,还有一种指针,就是野指针。比如刚定义但不初始化的指针 这比NULL危险的多 因为指向NULL就是告知没有地址,而野指针就指不定到哪个地方去了。因此野指针可能篡改其他数据,可能无效地址。总之会导致灾难级后果 并且野指针较难排查,因此在编写的时候就要防止野指针的出现

指针变量的特点: 1.指针变量取谁的地址,就指向谁 2.指针可以根据地址去获取变量,比如:

int* p = &a;
int c = *p;

这样变量c的值就是10 这里星号就发挥了一个取内容的作用