C语言入门——指针的入门理解

作为一名小白,对指针总是昏头昏脑的,先写下最近一次学习的体会。

一、一些符号(&和*)

我们不妨假设内存是一间公寓楼,门牌号有是十六进制的数,为了方便理解,还是类似于1000/1004这样真正的房间号

& 取地址(看到这个就要形成条件反射,有了它,你能知道你房间的门牌号)

例:&xiaoming     这样你就能得到小明的门牌号了,可能他的门牌号是1004

* 对指针做解引用操作 (你可以把他当做一种工具,类似于一把钥匙)

二、指针定义的理解

本质定义是:指针是一个变量,值是另一个变量的地址。

你可以当成,你的指南针是一个变量,有了它你就能知道你的另一个变量——房间的地址了

指南针也要分型号的,因此指针也分为int、double、float、char不同的型号,不同型号的指南针和不同房间的型号是一一搭配的。

int *inthouse;                 //一个int型的指针

扫描二维码关注公众号,回复: 2859642 查看本文章

double *doublehouse; //一个 double 型的指针

float *floathouse;          //一个float型的指针

char *charhouse;         //一个char型的指针

注意:记住!!说到指针,其实是指针(变量);

            *inthouse 中的 * 不是指针,它只是inthouse用来告诉你,我的名字前面加个 *,我就是与众不同的指针变量

三、使用指针

1. 指针变量的声明

有了这个针我们怎么用呢?首先我们得先说明这是什么型号的指南针

例如(二)中讲到的

int *inthouse;        //对它进行声明——这是一支int型的指南针

2. 在指针变量中存储地址

但是指南针虽然能指向房间地址但是它记不住房间的号码呀,于是为了让他能记住,我们使用这一句

inthouse = &xiaoming;         //在指针变量中存储xiaoming的地址

相当于我们对这个指南针贴上了磁条,告诉它一定要记住指向的是小明的房间号

3. 使用指针访问值

假设小明的房间号是1004,里面只装着一个东西——一张写了5的卡片

为了知道这张卡片写的是什么,我们要用指南针锁定位置,利用这一句输出卡片上的值

printf(“%d”, *inthouse);      //输出结果是 5

4. 加*和不加*?

printf(“%d”, inthouse);        //输出结果是1004

printf(“%d”, *inthouse);      //输出结果是 5

记住:带了*的,相当于一把钥匙,能够访问到房间内的值,而没带*的,他只是一个指南针,记得着一件房间号,进不去里面

猜你喜欢

转载自blog.csdn.net/qq_41924481/article/details/81838632