c - 指向数组的指针有什么意义?

标签 c arrays pointers

所以,我在阅读有关指针的内容时,遇到了指向数组的指针的概念。问题是指向数组的指针似乎根本没有用,因为我可以直接获取元素而不是使用具有偏移量的指针来访问数组元素。但是,我觉得好像我错过了这些有用的原因。

所以,简而言之,指向数组的指针有什么意义;它们应该如何使用以及为何使用,它们是否有任何实际应用?

编辑:我的意思是在普通/简单数组的上下文中,例如:

int array[5];

编辑: 正如 Keith 指出的那样,我特别询问指向数组的指针,例如 char (*ptr)[42] 这是一个指向42 元素的字符数组。

最佳答案

不幸的是,您收到的一些答案显示了对 C 中的指针和数组的误解,简而言之:

1) 指向数组的指针与指向第一个元素的指针不同。

2) 声明数组类型与声明指针不同。

您可以在 C 常见问题解答部分找到有关指针和数组之间常见混淆的完整描述:http://c-faq.com/aryptr/index.html

解决您的问题 - 指向数组的指针对于传递编译时已知大小的整个数组并在参数传递期间保留有关其大小的信息很有用。当您要对某个数组的子数组进行操作时,它在处理多维数组时也很有用。

关于c - 指向数组的指针有什么意义?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19199820/

相关文章:

c - Сan 我通过套接字收到文件后立即退出 С

c - 如何将标准输出重定向到 ANSI C 中的字符串

C代码: how to detect duplicate function declarations

arrays - Swift 中的最接近匹配字符串数组排序

c - 如何在C中对一个非常大的数组进行排序

c++ - 为什么派生类指针在没有强制转换的情况下不能指向基类对象?

将 double 转换为 uint8_t*

javascript - 一个实例的对象和数组被 Backbone 模型的新实例引用

c - 使用函数指针的正确风格是什么?

c++ - 为什么使用指针交换值不起作用?