指针

指针是什么:

:指针就是用来保存内存地址的变量

如果定义一个指针:

int  *indicator;//indicator就表示定义一个指向int型变量的指针。

int i = 100;

int *b;

b = &i;//读取变量i在内存中的地址,然后保存在指针变量b中。

*************************************************

我们知道指针就是用来保存内存地址的变量,因此我们定义了一个指针就一定要用它来保存一个内存地址,假如我们不那么做,那么这个指针就是一个失去控制的指针,它可以指向任何的地址,并且对该地址的数据进行修改或者删除,后果是非常可怕的,解决的方法就是将该指针初始化为0.

int *p;

p = 0;

int *p=0;

由于不同类型的变量在内存中所占用的字节不同,而指针又是用来保存内存地址的变量,因此指针只能存储类型相同的变量的地址。

由于指针类型不同决定了指针运算方式的不同,所以我们不能将一种类型的指针赋值给另外一种类型的指针。

指针的类型必须和变量的类型想匹配,否则他将会报错。

1:容易混淆的概念:

指针地址,指针保存的地址,该地址的值,也就是说,指针他自身的地址,指针保存的地址,和指针保存的地址处的值这三个概念最容易混淆。

指针地址:指针也是一个变量,当创建一个指针变量的时候,系统也会自动的为该指针变量创建一段内存空间,然后将该指针表示的内存空间地址保存到该指针变量在内存中开辟的空。

指针保存的地址:就是该指针指向的内存空间的地址

该地址的值:就是存储在该内存空间中的值

总结:每一个指针都有一个在内存中的地址,而在该地址中保存的值则是另外一个变量在内存中的地址。

2:指针对数的操作

指针的值是可以修改的,他跟其的变量一样,但是修改后的值得数据类型必须得想匹配。

原文地址:https://www.cnblogs.com/xingchen/p/2816872.html