IE盒子

搜索
查看: 133|回复: 0

你对C语言的指针熟悉吗?

[复制链接]

3

主题

9

帖子

15

积分

新手上路

Rank: 1

积分
15
发表于 2023-3-30 15:22:32 | 显示全部楼层 |阅读模式
作为有“中级语言”之称的C语言,其与Java、python等语言最大的区别就是具有手动管理内存的机制。实现这个机制的就是指针。
什么是指针?简单来讲,C语言里的指针就是指的就是变量的地址,注意指针和指针变量的区别,指针变量的值通常是另外一个变量的地址,而指针本身就是变量地址的意思。注意指针变量和数组的区别,很多教材有提到数组名可以视作指针,但是大多数的都没有直接说明,数组名不是指针变量。如果我们对数组名进行取地址,会发现得到的值和数组名的值是一样的。
原因是数组名在大多数情况会被隐式转换成指针变量,只有sizeof()和取地址时除外。了解这一点后,我们可以用数组名来理解指针。数组理解起来很容易,它就是内存上的一块连续的空间,而数组名就是这块空间的首地址。数组就像一个小区,而数组名就是这个小区1栋101的详细地址,向这个地址加1,就得到了1栋102的地址。而指针就是对这个地址的另外一种称呼,指针变量就是存储地址的变量,你可以把小区的任何一个门牌号对应的详细地址赋值给指针变量,然后通过使用解引用运算符"*",从而可以得到这个地址对应变量的具体数据,对于小区而言就是住户信息之类的。


自此,我们可以对“指针是变量的地址,指针变量是存储指针的变量”这一概念有一定程度的认识,下面我们使用实例来说明指针变量的作用。最经典的例子莫过于交换数字的函数了。
在C语言中,指针的使用非常广泛,因为使用指针往往可以生成更高效、更紧凑的代码。总的来说,使用指针有如下好处:
1)指针的使用使得不同区域的代码可以轻易的共享内存数据,这样可以使程序更为快速高效;
2)C语言中一些复杂的数据结构往往需要使用指针来构建,如链表、二叉树等;
3)C语言是传值调用,而有些操作传值调用是无法完成的,如通过被调函数修改调用函数的对象,但是这种操作可以由指针来完成,而且并不违背传值调用。


嵌入式物联网需要学的东西真的非常多,不少人因为学的路线不对、内容不对头而和高薪offer擦肩而过,甚至有些老铁压根都不知道要学什么……让人捉急……
分享一波自己整理的学习资源吧,基本上要学的内容都有,150多G。点击这里找小助理0元领取:

今天我的分享就到这里了~希望能对你有帮助!别忘了点关注和赞同哟~
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

快速回复 返回顶部 返回列表