关于指针,我们该如何理解?

一.什么是指针?

我们知道在计算机上CPU(中央处理器)在处理数据的时候,需要的数据是在内存中读取的,处理后的数据也会放回内存中。那在我们的电脑中这些内存空间是如何高效管理的呢?

其实也是把内存划分为一个个的内存单元,每个内存单元的大小取一个字节(就像是有楼房,咱们把楼房分成多层,来给用户住)

每一个内存单元都有一个编号(就相当于楼房里的门牌号),有了这个编号,CPU就可以快速的找到某个内存空间。这个编号就相当于地址,你可以理解为在C语言中我们给这个地址取了一个新的名字叫做指针。

简单的可以理解为内存单元的编号=地址=指针

二.取地址操作符和解引用操作符

1.&操作符

我们知道,创建变量的本质就是向内存申请一块空间。比如我创建一个变量 int a=10;我们知道a在内存中肯定有一个地址,而内存中的每一个内存单元都有一个编号,那我们怎么样才能获取这个地址呢?&操作符起到的就是这样的一个作用。

在这里咱们使用取地址操作符&就成功的把a的地址取了出来了。在这里大家需要注意有一个点,我们知道int类型的变量大小是四个字节,当然一个字节占用了一个内存单元,拥有着四个内存单元,那这四个内存单元都有编号,咱们取出的是哪一个呢?事实上是四个字节的第一个地址,一定是地址较小的那个地址。

2.*操作符

大家需要先知道一个东西,叫指针变量(实际上就是存放地址的变量)。还是上面那个代码,我把&a赋值给一个变量p。刚才说了,&a是一个地址啊,这里的p是什么类型呢?答案是int *类型,我们可以把int和*分开来看。

首先是*:*的存在说明p是一个指针变量。

int:在说明p指向的对象是int类型的,就像是这里p里面的地址是a的,而a地址里面放的是一个整型10.

三.简单用代码来应用一下这两个操作符

#include<stdio.h>
int main()
{
	int a = 10;
	int* p = &a;
	*p = 0;
	printf("%d\n", a);
	return 0;
}

这里大家可以想一想这里的打印出来的a值是什么?

咱们先把a的地址给了指针变量p,又使用了解引用操作符*p,把p指向的地址里面存的数给拿了出来重新赋值了0。此时的a就不是以前的a了,变成了0。

这串代码就简单的展现了一下关于指针的运用,非常简单,主要是为入门的码友简单的认识一下指针。

感谢观看,如有错误,欢迎指正。

  • 16
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值