【C语言】一文彻底理解指针,通俗易懂

您所在的位置:网站首页 指针函数的例子及解析图解大全 【C语言】一文彻底理解指针,通俗易懂

【C语言】一文彻底理解指针,通俗易懂

2024-07-12 04:26| 来源: 网络整理| 查看: 265

前言

众所周知,C语言是较为底层的语言,许多操作是直接对内存进行操作,既然谈到C语言,那就不得不说道C语言的独特之处——指针 针对int *p 进行讲解,当你能理解这3个后,指针就明白了

一、 变量存储过程及原理

在这里插入图片描述

1.赋值

结果是9 在这里插入图片描述

我们需要知道对于int a = 9;这句话,计算机做了什么?

定义a int a,在内存中开辟了一个int大小的空间,也就是4个字节(32位),然后将这个空间分配给了a,这就是a的空间了

给a赋值 a = 9,在a的空间里存放9这个数,然后将十进制的9转换成二进制的9 在这里插入图片描述

这里存储数据的方式是大端模式,简单来说就是把数据的低字节保存在内存的高地址中,有兴趣的可以了解一下,这里不多赘述 可以看到00001001是我们存储进去的数值,根据大端模式,数据的低字节保存在内存的高地址中,所以就是上图的存储格式

2.外部手动赋值

scanf("%d",&a); 执行这行代码时,输入一个int型的数值,例如8,然后&a,即找到a的地址,将8转为二进制,存入到a的空间,这也是为什么需要加&号 总结 一个变量的存储,首先是在内存开辟一个空间,然后把这个空间分配给某一变量,再对变量进行存储

二、 指针变量int *p 1.指针类型

指针类型int *p,虽然*p是写在一块的,但是变量名是p,类型是int *,也就是整形的指针类型,理清指针类型和变量后,其实已经差不多明白了

在这里插入图片描述 结果 在这里插入图片描述 可见变量p里存放的是a的地址

错误写法: 在这里插入图片描述 一个事指针类型,一个事int类型,是无法相互操作的(类型不匹配)

2.指针存储过程及原理

在这里插入图片描述

这一段代码看看计算机是如何运行的 在这里插入图片描述

可以将int类型变量的地址赋给 int *指针类型变量&是取地址符,&a就是拿到a的地址

总结: 总的来说,就是针对a的空间,给了p一把钥匙,让p也可以对a的那片空间进行操作

指针操作

在这里插入图片描述结果 在这里插入图片描述

总结: 除了定义指针变量的时候,变量前面有*为定义类型 其他时候均为指针的取值操作,注意是取值,不是取地址,拿的是指针变量中存放的值 个人理解,欢迎评论探讨!



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3