C语言入门-指针1

前言
目前对于军工企业或者说是嵌入式行业,C语言是不可替代的一部分,因此开展简单的分析、学习、讨论,同时推荐一个非常小的C语言编译、调试软件《Dev-Cpp》,如果需要的小伙伴评论区留言即可。

一、C语言-指针

指针:指针是什么?指针是可以直接操作内存的一种工具,而内存是计算机的重要部分,计算机通过而指针可以直接操作内存,从而可以使得不同函数间变量传递数据更加方便,简化代码,要不然整个工程将会有大量的全局变量。

内存:内存分为物理内存和虚拟内存,程序中运行操作的内存多为虚拟内存,而虚拟内存的产生由物理内存映射得到,而映射的方式通过存储器管理单元MMU进行管理。

物理内存:物理内存的大小取决于芯片的地址线的多少,例如32位的CPU计算机,有32个地址线,也就有2^32=4G空间大小的内存。

操作方式:cpu可以执行代码指令,指令可以操作内存,当你往这个内存单元里面写入数据时,芯片的引脚的电压会发生变化,比如说我写入的是01100001,则芯片上与之对应的8个引脚的电压状态(分为高电平与低电平两种)会输出:低高高低低低低高。

二、C语言-例子1.0

2.1 以建房子为例,介绍指针这个神奇的工具;
首先,当我们建好房子的时候,那么房子里各种砖块的位置是固定的,整个房间的大小可以比喻为计算机CPU的内存大小,也就是物理内存,而砖块所在的位置也就是C语言中变量的地址。
如果我们想要更改砖块的类别,想要从红砖换成蓝砖,那么此时对于房子来说,就必须将原来的砖块拆除,然后替换为新砖块。
而对于C语言来说,如果想要改变变量的值,则需要重新赋值,但是C语言提供一种方法,也就是指针,也可以改变一个变量的值。
例如:

#include "stdio.h"
	int main(void)
	{
		int a=3;   //定义一个变量a;
		int*p=NULL;//定义一个指针p;
		p=&a;//将a的地址给指针p,那么此时指针p就可以操作a的值了;
		*p=1;//使用取值符*,获取指针p指向地址的值,然后将1赋值给它,此时变量a也就变成了1;
		printf("a=%d\n",a);
	}

上面就是使用指针的简单操作,最终打印输出->(a=1)

2.2 其次,对于指针地址的具体形象,也就像房子里面的砖块一样,具体表现就是第一块转、第二块、第三 块…,而C语言的单位是字节,如第一个字节、第二个字节…;
我们都知道,int型的字节为4个字节,也就占4个位置,比如1999-2003,这个地址,就是int a=3的地址;而我们利用指针工具获取的地址,一般为变量的首位地址,即1999,即p=&a=1999。

2.3 int p;其中的为数据类型标识符;p为指针变量名
int代表指针只能储存int类型变量的地址;此时的p仅仅定义了指针变量,还没有指向确定的变量地址,因此此时是随机地址;
这也是为什么需要在初始化的时候,int
p=NULL;//定义一个指针p,将NULL赋值给指针P的原因,就是防止随机地址指向一个非法地址,导致程序报错。

2.4 Int a=3;Int p=&a;此时就将a的地址符(假设首地址为1999)赋给指针变量p,那么此时指针变量p表示1999;
p表示解析指针变量p,即*p=a,p表示a这个变量真实的内存;操作p同样会作用于a,而操作p只是简单的改变地址。

三、C语言-总结

后续小编会继续更新,争取将C语言这个大房子建的越来越好。

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
提供的源码资源涵盖了安卓应用、小程序、Python应用和Java应用等多个领域,每个领域都包含了丰富的实例和项目。这些源码都是基于各自平台的最新技术和标准编写,确保了在对应环境下能够无缝运行。同时,源码中配备了详细的注释和文档,帮助用户快速理解代码结构和实现逻辑。 适用人群: 这些源码资源特别适合大学生群体。无论你是计算机相关专业的学生,还是对其他领域编程感兴趣的学生,这些资源都能为你提供宝贵的学习和实践机会。通过学习和运行这些源码,你可以掌握各平台开发的基础知识,提升编程能力和项目实战经验。 使用场景及目标: 在学习阶段,你可以利用这些源码资源进行课程实践、课外项目或毕业设计。通过分析和运行源码,你将深入了解各平台开发的技术细节和最佳实践,逐步培养起自己的项目开发和问题解决能力。此外,在求职或创业过程中,具备跨平台开发能力的大学生将更具竞争力。 其他说明: 为了确保源码资源的可运行性和易用性,特别注意了以下几点:首先,每份源码都提供了详细的运行环境和依赖说明,确保用户能够轻松搭建起开发环境;其次,源码中的注释和文档都非常完善,方便用户快速上手和理解代码;最后,我会定期更新这些源码资源,以适应各平台技术的最新发展和市场需求。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值