当前位置:首页 » 《休闲阅读》 » 正文

初识指针(4)<C语言>

14 人参与  2024年05月26日 11:29  分类 : 《休闲阅读》  评论

点击全文阅读


前言

        前面的文章,已经对指针的基础概念以及运用有了初步了解,我们可以进一步探究指针比较深入的知识,下文将主要介绍:使用指针数组模拟二维数组、字符指针变量、数组指针、二维数组传参的本质、函数指针、typedef关键字等。

目录

指针数组模拟二维数组

 字符指针变量

数组指针

二维数组传参的本质

函数指针

typedef关键字


指针数组模拟二维数组

        前文我们已经学习了指针数组,即存放指针的数组,而数组名就是一个指针,那么是否能够通过指针数组完成对多个数组的存放并输出呢?


 

 字符指针变量

        字符指针通常有两种情况,第一种指向单个字符的,第二种指向一个字符串的。前者很好理解,指向单个字符,那么这个指针中存放的就是这个字符的地址。那么指向一个字符串的呢,它指向的地址是首字母的地址,还是整个字符串的地址?

        本质上存放的是首元素的地址,但是它的访问权限是到字符串的最后一个字符,不会受到指针运算的影响。

 下面给出一道经典题深入理解字符指针

         在上图可以清楚的看到两个数组是不相同的,很好理解,两个数组哪怕元素完全一致,数组名不同,都不相同。

        但是两个字符指针是相等的,在c/c++中会有一个专门的区域来存放字符串,避免造成空间的浪费,所以哪怕两个字符指针名不一样,只要它们指向的字符串是一样的,它们就相等。

 


数组指针

        数组指针即指向数组的指针,前文我们已经说过,数组名即是首元素的地址,要想取整个数组的地址应该用&数组名


二维数组传参的本质

        前文我们已经学过一维数组传参的本质是一个地址,这也就是在传参时数组大小为什么可以被省略的原因,那么二维数组在传参时,是否也一样呢?

        答案是肯定的,传的就是首元素的地址,也就是第一排的地址。

         这个二维数组3行5列,且为int型4字节,每行20字节,当传参时第一排地址被传过去,+1时跳过20字节(一排的地址长度),所以我们的结论正确。


函数指针

        话说C语言中,万物皆地址,函数也有地址,我们能否通过一个函数指针来接收函数地址呢,是否能够通过函数指针完成对函数的引用呢?

        

         可以看到其实函数名就是地址,&函数名与函数名是完全等价的,函数指针与数组指针类似,都要保证指针名与*的先结合,其他部分就是函数的类型了。


typedef关键字

        typedefg关键字的作用就是给类型重命名,简单化。

如将unsigned int重命名为unit

 值得注意的是当对数组指针与函数指针进行重命名时,一定要把别名放在*右边。

如将int (*)(int,int)重命名为p

Respect!


点击全文阅读


本文链接:http://zhangshiyu.com/post/113774.html

<< 上一篇 下一篇 >>

  • 评论(0)
  • 赞助本站

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。

最新文章

  • 妾室软又香,步步谋宠艳压群芳孟嫣然宋景和:结局+番外(孟嫣然宋景和:结局+番外)完结_(孟嫣然宋景和)列表_笔趣阁(妾室软又香,步步谋宠艳压群芳:结局+番外)
  • 丁克老公迎回双胞胎,我消失了厉穆辰乔玉景_丁克老公迎回双胞胎,我消失了厉穆辰乔玉景
  • 重生1959:从巡山员开始发家致富后续大结局更新+番外_[谭飞林舒清]情感冲突名场面试读章
  • 相思烬落冥河渡:结局+番外灵魂人物全书叶流萤冥渊在线
  • (番外)+(全书)(萧旗于尚恩)_失明后老公将闺蜜接来照顾我,我先跑为上列表_笔趣阁(萧旗于尚恩)(萧旗于尚恩)完结_(萧旗于尚恩)列表_笔趣阁(失明后老公将闺蜜接来照顾我,我先跑为上)
  • 季时越夏青栀(旧梦静默成诗:结局+番外)免费在线_季时越夏青栀全文后续(旧梦静默成诗:结局+番外)
  • 明月不可追:结局+番外(薛明月)全书浏览_明月不可追:结局+番外全书浏览
  • 独家《恰似晚风不留我:结局+番外》沈冉顾墨琛沈心_沈冉顾墨琛沈心(恰似晚风不留我:结局+番外)
  • 微风轻拂又见你:+后续完结全书林书意陆沉在线
  • 相思寸寸,终成陌路:结局+番外(楚宴辞温情雪)_相思寸寸,终成陌路:结局+番外(楚宴辞温情雪)
  • 「狱出帝龙」小说精彩节选试读_「李锐慕容明月」限时免费完整章节
  • 全文封少他蓄谋已久封景煜+番外(林晓月)列表_全文封少他蓄谋已久封景煜+番外

    关于我们 | 我要投稿 | 免责申明

    Copyright © 2020-2022 ZhangShiYu.com Rights Reserved.豫ICP备2022013469号-1