【发布时间】:2020-03-11 19:05:37
【问题描述】:
我在将双指针作为 C 中的参数时遇到了一些问题。
据我所知:
当我有一个将指针作为参数的函数时,比如说一个名为 functionX(int *y) 的函数
然后当我调用functionX时,假设:functionX(&randomvar),其中randomvar是一个包含某个值(比如说5)的整数,然后C将创建一个也称为“randomvar”的指针,其中包含@的地址987654325@。所以*randomvar 的输出将是 5。
我的理解正确吗?
如果是这样,那么当函数具有双指针时:functionX(int **y) 并通过执行 functionX(&randomvar) 创建 2 个指针,一个包含 randomvar 的地址,另一个包含第一个指针的地址。
我在这里有点难过我不确定它是否正确。
【问题讨论】:
-
双指针是指向指针的指针。就是这样。他们并不特别。要做到
functionX(&randomvar),randomvar必须是一个指针。你不能这样做&&randomvar因为&与变量一起使用,而&randomvar不是变量。 -
今天早些时候的问题提供了一般性讨论,可能会有所帮助Pointer to pointer of structs indexing out of bounds
标签: c pointers double-pointer