如何解决困惑如何传递指针
typedef struct nodeWords
{
char * word;
struct nodeWords *left;
struct nodeWords *right;
} nodeWords;
void leftRightAddress(int buckets,nodeWords *nodeHash);
int main(void)
{
nodeWords *nodeHash = malloc(500 * sizeof(nodeWords));
leftRightAddress(500,nodeHash);
}
void leftRightAddress(int buckets,nodeWords *nodeHash)
{
}
能解释一下为什么当我在main中调用函数leftRightAddress()时需要使用参数nodeHash而不是指针* nodeHash吗?该函数定义为采用指针。
解决方法
您对nodeHash的声明使其成为指针类型(即指向内存中的位置)。如果随后传递* nodeHash,则实际上是在取消引用它,因此实际上传递的是它指向内存中的对象。
TZR
,
获取指针并获取指向的指针是取消引用,*nodeHash
是取消引用。
nodeHash
的值是struct nodeWords *
,即一个指针。
*nodeHash
的值是struct nodeWords
,即一个结构。
参数的类型为struct nodeWords *
,因此您要传递nodeHash
(指针)而不是*nodeHash
(结构)的值。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。