C指针只对实现数据结构有用吗?

Mar*_*ark 2 c pointers

我每天都开始使用C并且想知道,除了数据结构(例如,链接列表,二叉树等)之外还有其他用于指针的用途吗?注意:已编辑

Nat*_*man 7

C没有通过引用传递的内置方法.指针是实现它的好方法.

如果您想要,您需要通过引用传递:

  • 修改您给出的参数,例如,如果您的函数有多个返回值.
  • 将大型结构传递给函数而不完全复制它,这在时间和内存上可能非常浪费.

C也没有内置的可变大小的数据结构.如果需要一个只在运行时知道其大小的数组,获取它的唯一两种方法是:

  1. 估计最大尺寸并始终分配它.
  2. malloc 它,它会给你一个指向工作的指针.

显然,选项1很糟糕,因为:

  1. 如果你很少需要最大尺寸,那就太浪费了.
  2. 如果最大需要更改,则必须重新编译.

这将为您提供选项2,这需要指针.如果C有引用,这不一定是真的,但正如我之前所说,它没有.

如果我给它更多时间,我可能会想到许多其他用途.


您可以使用函数指针来围绕各种函数包含常用功能.