在C语言中, 数组参数被视为指针。以下foo()的两个定义看起来有所不同, 但是对于编译器而言, 它们的含义完全相同。为了提高可读性, 最好使用更准确的语法。如果传入的指针确实是整个数组的基址, 则应使用[]。
void foo( int arr_param[])
{/* Silly but valid. Just changes the local pointer */
arr_param = NULL;
}void foo( int *arr_param)
{/* ditto */
arr_param = NULL;
}
由于效率, 数组参数被视为指针。就内存和时间而言, 复制阵列数据效率很低;在大多数情况下, 当我们传递数组时, 我们的意图只是告诉我们感兴趣的数组, 而不是创建数组的副本。
参考文献:
【为什么C将数组参数视为指针()】http://cslibrary.stanford.edu/101/EssentialC.pdf
推荐阅读
- 为什么DNS使用UDP而不使用TCP()
- 如何使用Python的网站拦截器(用法图解)
- Web爬网/爬虫–合法还是非法的()
- Python Web将冠状病毒数据收集到MS Excel中
- 网站信息检索|向量空间模型详细介绍
- Alibaba中间件技术系列「Nacos技术专题」配置中心加载原理和配置实时更新原理分析(上)
- Alibaba中间件技术系列「Nacos技术专题」配置中心加载原理和配置实时更新原理分析(中)
- 字节跳动 iOS Heimdallr 卡死卡顿监控方案与优化之路
- 强大的开源规则引擎