笔记 | C语言指针简介

31 篇文章 2 订阅

要了解指针,首先要理解内存 

目录

1、理解内存

1.1内存:

 1.2内存如何使用

2、指针简介

2.1、找变量的地址

2.2、存放与使用变量地址

2.2.1、存放 

2.2.2、使用 

3、结语


1、理解内存

1.1内存:

计算机上的 一种存储空间,我们可以在电脑上看自己电脑是多少内存的(8G/16G/32G) 

程序在运行的时候,载入内存
程序中如果有数据需要存储,也会向系统申请内存空间,如图(框起来的就是运行时所占内存)
查看方法:ctrl + alt + delete,然后查看任务管理器

 1.2内存如何使用

 打个比方:
  一栋教学楼有很多个教室,将这些教室编号,再对应各个班级。然后我们就可以通过教室编号,找到相应的班级。这些房间编号其实就是地址,在C语言里面就称为指针。如图:

内存:  
  那么,在内存其实也是这个思路。在系统中,把内存划分成了一个一个小的内存单元,在实践中,一个内存单元大小是一个字节,每个单元有着相应的编号,那么这个编号,就叫地址,同样的,在C语言里面称为指针。
  在这里再讲一个拓展,如果访问一个内存单元,那么内存单元该如何产生呢?
  现在我们的电脑大部分是64位操作系统,64位机器上就有64根地址线,64根地址线通电,将电信号转换成数字信号对应的就是二进制的0和1,这里我们画图以32位为例(64位相对较大 )。
  了解了这些,我们下面就正式步入C语言的指针

2、指针简介

2.1、找变量的地址

  在C语言里什么是指针?从根本看,指针是一个值为内存地址的变量

  我们先来看一段代码:

int main()
{
	int a = 1;
	printf("%zd", sizeof(a));
	return 0;
}

我们创建了一个整型a,这个a的创建,就是在内存中申请了4个字节的空间(sizeof可计算出)。

int main()
{
	int a = 1;
	printf("%p\n", &a);
	return 0;
}

接下来我们可以通过 & 这个符号(取地址操作符),取出a的地址,然后通过 %p 将其打印出来

a占4个字节,理应有4个地址,但我们发现,这只打印了一个地址。我们通过1编译器调试可看出,取出的地址为a所占内存的第一个字节的地址。

2.2、存放与使用变量地址

2.2.1、存放 

 

  我们现在已经知道了变量a的地址,如何将其存放起来 ,如图

int main()
{
	int a = 1;
	int* pa = &a;
	printf("%p\n", pa);
	printf("%p\n", &a);
	return 0;
}

 我们用一个变量pa来存放a的地址,然后 * 告知为指针(地址),前面a的类型为int,所以我们pa这个变量的类型也是int 。我们就可以通过pa,直接找到a的地址

2.2.2、使用 

注意:这里*pa不是改变a的地址,而是通过解引用操作,直接找到了a,改变了a的值,但地址没有发生改变。


3、结语

 初阶只需知道在C语言里,指针就是地址,然后如何简单的操作使用即可。
这次的内容就分享到这里,这也相当于我的一个笔记,有什么不足之处,请多多包涵;如果感觉对朋友们有些许帮助,点个赞支持一波。

 

 

 


 

  • 3
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

加法器+

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值