0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

图文详解:数组和指针的传参

如意 来源:CSDN 作者:cherrydreamsover 2020-06-29 15:34 次阅读

传参

数组:

数组传参时,会退化为指针,所以我们先来看看什么是退化!

(1)退化的意义:C语言只会以值拷贝的方式传递参数,参数传递时,如果只拷贝整个数组,效率会大大降低,并且在参数位于栈上,太大的数组拷贝将会导致栈溢出。

(2)因此,C语言将数组的传参进行了退化。将整个数组拷贝一份传入函数时,将数组名看做常量指针,传数组首元素的地址。

1.一维数组的传参

图文详解:数组和指针的传参

2.二维数组的传参

图文详解:数组和指针的传参

指针:

1.一级指针传参

当函数参数部分是一级指针时,可以接受什么参数例如:test(int*p)

(1)可以是一个整形指针

(2)可以是整型变量地址

(3)可以是一维整型数组数组名

图文详解:数组和指针的传参

2.二级指针传参

即当函数参数部分是二级指针时,可以接受什么参数例如:test(int**p)

(1)二级指针变量

(2)一级指针变量地址

(3)一维指针数组的数组名

图文详解:数组和指针的传参

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • C语言
    +关注

    关注

    180

    文章

    7534

    浏览量

    128820
  • 指针
    +关注

    关注

    1

    文章

    473

    浏览量

    70364
  • 数组
    +关注

    关注

    1

    文章

    409

    浏览量

    25595
收藏 人收藏

    评论

    相关推荐

    C语言数组名和指针

    指针是C/C++语言的特色,而数组名与指针有太多的相似,甚至很多时候,数组名可以作为指针使用。于是乎,很多程序设计者就被搞糊涂了。而许多的大
    发表于 08-27 17:48 611次阅读

    C语言中指针数组数组指针的区别

    指针数组之间存在着紧密的关系。在本文中,我们将探讨指针数组的关系、指针算术和数组遍历、多维
    发表于 08-17 15:29 280次阅读

    数组指针详解

    数组指针详解分享,请多指教!
    发表于 12-15 11:21

    数组指针的详细讲解

    数组指针的详细讲解
    发表于 10-16 08:44 0次下载

    数组指针的简单定义及其相互的联系与区别详解

    确实在极个别的情况下,数组指针确实可以”通用“,但是在却大多数情况下,数组指针是两个完全不同的C。
    的头像 发表于 12-09 11:20 7029次阅读
    <b class='flag-5'>数组</b>和<b class='flag-5'>指针</b>的简单定义及其相互的联系与区别<b class='flag-5'>详解</b>

    详谈数组指针的区别与联系

    详谈数组指针的区别与联系
    的头像 发表于 06-29 15:18 2.2w次阅读
    详谈<b class='flag-5'>数组</b>和<b class='flag-5'>指针</b>的区别与联系

    指针数组数组指针的区别

    这里我们区分两个重要的概念:指针数组数组指针
    的头像 发表于 06-29 15:30 1.9w次阅读
    <b class='flag-5'>指针</b><b class='flag-5'>数组</b>和<b class='flag-5'>数组</b><b class='flag-5'>指针</b>的区别

    理解函数指针、函数指针数组、函数指针数组指针

    理解函数指针、函数指针数组、函数指针数组指针
    的头像 发表于 06-29 15:38 1.4w次阅读
    理解函数<b class='flag-5'>指针</b>、函数<b class='flag-5'>指针</b><b class='flag-5'>数组</b>、函数<b class='flag-5'>指针</b><b class='flag-5'>数组</b>的<b class='flag-5'>指针</b>

    C语言中指针数组

    #define SIZE 10int arry[SIZE]={0,1,2,3,4,5,6,7,8,9}; //数组名arry表示数组首元素的地址*int p,temp;//可直接初始化定义指针
    发表于 01-13 13:11 3次下载
    C语言中<b class='flag-5'>指针</b>与<b class='flag-5'>数组</b>

    C语言指针数组的区别

    在C语言教程中我们使用通过数组名通过偏移和指针偏移都可以遍历数组,那么指针数组到底有什么区别??
    的头像 发表于 07-18 16:29 1553次阅读

    二维数组数组指针以及指针数组

    二维数组数组指针以及指针数组
    的头像 发表于 08-16 09:02 2262次阅读

    【C语言进阶】“数组指针”和“指针数组”都是啥跟啥?

    【C语言进阶】“数组指针”和“指针数组”都是啥跟啥?
    的头像 发表于 08-31 13:21 1681次阅读

    C语言中什么是指针数组

    在C语言中一个数组,若其元素均为指针类型数据,称为指针数组,也就是说,指针数组中的每一个元素都存
    的头像 发表于 03-10 15:26 1282次阅读

    数组指针不能混用的情况

    数组指针不能混用的情况  数组指针是 C/C++ 中非常常见的特性和概念。然而,在某些情况下,数组
    的头像 发表于 12-07 13:46 316次阅读

    数组指针不相同吗?数组指针有哪些区别

    数组就是指针指针就是数组,这样的言论在评论区看到不下于10次。
    的头像 发表于 12-13 16:34 359次阅读
    <b class='flag-5'>数组</b>和<b class='flag-5'>指针</b>不相同吗?<b class='flag-5'>数组</b>和<b class='flag-5'>指针</b>有哪些区别