C语言的世界(九)

前言

你好,C语言(指针)

指针是C语言中一个重要的概念,极大地丰富了C语言的功能。

指针也是C语言的精华之处。

阅读之前,现阶段,请先这样认为:指针==地址

目录

前言

一、指针是什么?

二、内存地址(格式控制符“%p”)


一、指针是什么?

指针就是地址。

但要注意,随着学习的深入,我们的观念可能会变化。

二、内存地址(格式控制符“%p”)

数据在计算机中处理时,都要进入计算机的内存。

我们通常把内存中的一个字节大小的存储空间称为一个内存单元,不同数据类型的数据所占用的内存单元数不同。

内存地址表示对象在内存中的“位置”,

像下图一样,内存都是由一个又一个的内存单元组成的。

这些内存单元都有编号(唯一),编号就是内存地址。

通过每一个地址,我们可以找到一个一个的“小房子”。 

绿框就是一个一个的小房间,并且每个小绿框都有一个编号。

举例:

int x=200;
printf("%d",x);

在32位机器中,int 占4个字节,所以为x开辟了4个内存单元。(1-4)

当我们调用printf()函数输出时,函数就到内存中找到1这个地址(编号),然后从1读到4,读取到200,这时,x里的值200便被输出。 

这个过程可以叫做:按照变量地址存取变量的值,这种访问变量的方式叫做“直接访问”。

提到直接访问,那必须就有间接访问啦! 

(在为变量开辟空间时,一般以第一个字节(内存单元)的地址作为变量的地址。)

间接访问:通过变量的地址进行操作。

即用指针来访问内存和操纵地址,也就是先要找到存放变量地址的变量,然后从中取出变量的地址,再到相应的位置取出变量的值。

那么到这里,我们就引入

指针变量

专门存放变量地址的变量,称为“指针变量”。它的值就是某一变量的地址。

举个例子:

int x=200;
int *p;
p=&x;
printf("%d",*p);

我们定义整型变量x并赋值200,定义一个指向型指针变量(这里的*号就代表此变量是指针变量)

p=&x,(&是取地址符。这里的赋值表达式代表,p指针变量指向x,p与x建立了一种指向关系)

利用指向关系可以实现间接操作变量x。

指针的简单介绍就到这里啦,感谢你看到这里,博文难免有纰漏,请大家积极指出。

猜你喜欢

转载自blog.csdn.net/m0_60653728/article/details/122136890
今日推荐