C语言指针干货——你真的学懂指针了吗?(一)

真正的大师永远永远怀揣着一颗学徒的心。近来琐事颇多,有些心猿意马,一些本该做的事没有做,本该能做好的事却做的很糟糕。然青春如如白驹过隙,当争朝夕。早在一周前就想写篇c语言指针博客,拖拖拉拉到今天才写。下面为大家带来一篇C语言指针详解。希望能和大家一起学习,交流。如有错误,欢迎批评指正,我将虚心请教。本次博客所以源码在文末。

本期内容:

指针是什么?

指针的大小

指针和指针类型。

指针运算

下期更新

 指针是什么?

 指针是内存单元中一个最小的编号,指针就是地址。地址就是指针,但是我们通常所说的指针是指针变量。(存放在指针中的值都会被当作地址处理哦)。当我们在声明int a时,系统会在内存中开辟一块空间,而内存中每一块空间都有地址编号。

指针的大小

指针大小在不同操作系统下大小不同,在32位操作系统下指针的大小为4个字节,在64位系统下,指针的大小为8个字节,这是因为32位系统表示有32根地址线而64位系统表示有64根地址线,一字节等于8bit,所以在不同的操作系统和边缘环境上,指针的大小也有所不同。

指针的类型以及指针类型的意义

指针也具有类型,如cahr* p; short*p,double* p;但是他们大小都是相同的,都是在32位环境的话就是4字节,在64位系统的话就是8字节。 虽然他们大小相同,但是意义可不一样,可以看到下面代码,以0x开头的是16进制数字,每一位16进制数字都可以转换位四位二进制,如0000这样的二进制,其中的一位就是1bit,这里因为int类型占4个字节,每个字节是8bit.而一个16进制是bit那么每两位16进制就会占一个字节,十六进制的11223344就会占四个字节,我们可以看到截图中的内存地址又A24变到A28。这里表示了有四个地址,指针会指向首地址,从首地址向后访问共四个字节。那这里我们就知道int a 的四个字节空间内,分别放了11 22 33 44,下面我们定义两个不同类型的指针变量,同时指向这段空间,看看会发生什么?

可以看到我们定义了一个char指针变量,当我们让这个指针指向的地址变量变成0时,四个地址储存的数据中,只改变了一个地址空间的值,当我们定义int 类型的指针时,让指针指向的数据变成0时,四个地址空间内的数据都变成了0,所以指针类型的意义:就是可以决定指针访问多少个字节,也就是指针的权限,当我们想人指针访问1个字节是就可以用char类型的,访问四个字节就用int,其他类型以此类推。

 

 

指针的运算

指针加减整数

可以看到同样是指针加减同一个整数,但是结果却不相同,char类型的指针加一只向后走了一个地址,但是int 类型的确是四个地址

指针减指针

指针减指针的前提是都指向了同一块开辟空间。指针与指针只能相减不能相加。

指针与指针相减得到绝对值就是两个指针之间的元素个数,指针减指针就是地址减地址

指针的关系运算 

允许指向数组元素的指针与指向数组最后一个元素后面的那个内存位置的指针比较,但是不允许与 指向第一个元素之前的那个内存位置的指针进行比较

下期更新

指针和数组

二级指针

指针数组

Python网络爬虫与推荐算法新闻推荐平台:网络爬虫:通过Python实现新浪新闻的爬取,可爬取新闻页面上的标题、文本、图片、视频链接(保留排版) 推荐算法:权重衰减+标签推荐+区域推荐+热点推荐.zip项目工程资源经过严格测试可直接运行成功且功能正常的情况才上传,可轻松复刻,拿到资料包后可轻松复现出一样的项目,本人系统开发经验充足(全领域),有任何使用问题欢迎随时与我联系,我会及时为您解惑,提供帮助。 【资源内容】:包含完整源码+工程文件+说明(如有)等。答辩评审平均分达到96分,放心下载使用!可轻松复现,设计报告也可借鉴此项目,该资源内项目代码都经过测试运行成功,功能ok的情况下才上传的。 【提供帮助】:有任何使用问题欢迎随时与我联系,我会及时解答解惑,提供帮助 【附带帮助】:若还需要相关开发工具、学习资料等,我会提供帮助,提供资料,鼓励学习进步 【项目价值】:可用在相关项目设计中,皆可应用在项目、毕业设计、课程设计、期末/期中/大作业、工程实训、大创等学科竞赛比赛、初期项目立项、学习/练手等方面,可借鉴此优质项目实现复刻,设计报告也可借鉴此项目,也可基于此项目来扩展开发出更多功能 下载后请首先打开README文件(如有),项目工程可直接复现复刻,如果基础还行,也可在此程序基础上进行修改,以实现其它功能。供开源学习/技术交流/学习参考,勿用于商业用途。质量优质,放心下载使用。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值