开发者社区> 问答> 正文

那么为什么作为函数形参的数组和指针申明可以互换呢 ?

那么为什么作为函数形参的数组和指针申明可以互换呢 ?

展开
收起
游客py5kcp7dd6tu6 2022-03-29 01:10:13 446 0
1 条回答
写回答
取消 提交回答
  • 这是一种便利。 由于数组会马上蜕变为指针, 数组事实上从来没有传入过函数。允许指针参数声明 为数组只不过是为让它看起来好像传入了数组, 因为该参数可能在函数内当作数组 使用。特别地, 任何声明 ``看起来象" 数组的参数, 例如

    void f(char a[])
    { ... }
    

    在编译器里都被当作指针来处理, 因为在传入数组的时候,那正是函数接收到的. void f(char *a) { ... } 这种转换仅限于函数形参的声明, 别的地方并不适用。如果这种转换令你困惑, 请避免它; 很多程序员得出结论, 让形参声明 ``看上去象" 调用或函数内的用法 所带来的困惑远远大于它所提供的方便。

    参见问题 6.18。

    2022-03-29 01:11:30
    赞同 展开评论 打赏
问答排行榜
最热
最新

相关电子书

更多
低代码开发师(初级)实战教程 立即下载
冬季实战营第三期:MySQL数据库进阶实战 立即下载
阿里巴巴DevOps 最佳实践手册 立即下载