栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > C/C++/C#

初识c语言指针

C/C++/C# 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

初识c语言指针

文章目录
  • 指针
    • 1.1内存
    • 1.2指针的类型
    • 1.3取地址与解引用
    • 1.4指针为什么要存在?

指针 1.1内存

说到指针不得不先说一下内存。

比如说打开我们电脑的任务管理器就可以看到我们每个进程所占用的内存。程序就是在内存中运行的。

内存是一块比较大的空间,为了有效利用内存我们把内存划分成一个一个小的空间,我们称为内存单元,而每一个小空间都有自己的编号,我们称为内存地址。


在32位的电脑上,有32根地址线。通电则为1,不通电则为零0。产生的二进制序列可能性就有2^32种,每一种可能就对应一个内存单元。(单位是字节)

可以看出32位的电脑上管理内存的大小可以达到4gb;如今的64位电脑管理内存大小也是同样的方法算出来,这里就不列举了。
在c语言中,编号、地址、内存的关系

int a 要给a分配4个字节的空间。但是取地址时读取的是4个字节中第一个字节的地址;(0x0012ff40)

那么如何证明取的是第一个地址呢?

查看a的内存地址发现打印的是4个字节中的第一个地址;

蓝色的部分是内存中存放a开辟的空间,灰色部分是指针变量pa开辟的空间。pa中存放的是a的地址,那么pa对a又有指向关系,可以通过pa中存放的地址找到a所在的内存空间从而获得a中存放的数据。

那么指针开辟出来的空间是多大呢?

1.2指针的类型

1.3取地址与解引用


取地址操作:就是把a的地址取出来存放到指针变量pa中去
解引用操作:就是通过pa存放的地址找到pa所指向的对象

1.4指针为什么要存在?

我学c语言指针的时候也迷茫,知道指针可以操作变量。可是看到上面这段代码,我就不明白指针存在的意义?明明double d可以直接改,为什么要弄个指针去操作他这么麻烦呢?学校里举的例例子也是这种简单的,但是我不明白存在的意义。

那么既然c语言中有指针,那么肯定就有存在意义,我给大家举个例子。

我们写代码的时候不是只有在main()函数的里面写代码,完全有可能是脱离主函数去敲代码的。
站在test函数的视角上,传过去的是&d,test函数是不知道d这个东西的,那么它知道有个指针(也就是地址)呀,只能拿个指针变量来接收。那么这就是指针存在的意义之一。

如有错误欢迎指正
如有错误欢迎指正
如有错误欢迎指正

有帮助记得一键三连噢,蟹蟹
有帮助记得一键三连噢,蟹蟹
有帮助记得一键三连噢,蟹蟹

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/1017828.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号