C-如何从指向该值的指针访问该值?
此函数需要传递一个指向指针的指针C-如何从指向该值的指针访问该值?,c,pointers,C,Pointers,此函数需要传递一个指向指针的指针 void get_name(person** p) { puts(p->name); // this is probably wrong } 这就是我调用函数的方式(我也不确定): Person显然是一个结构,其名称属性是字符串 如何从**p中引用*p点的值?x->y只是(*x).y的快捷方式*执行间接寻址(即,它为您提供指针指向的对象),因此您需要执行两次间接寻址以获得指针指向的对象: (**p).name (*p)->name 如果p
void get_name(person** p) {
puts(p->name); // this is probably wrong
}
这就是我调用函数的方式(我也不确定):
Person显然是一个结构,其名称属性是字符串
如何从**p中引用*p点的值?
x->y
只是(*x).y
的快捷方式<代码>*执行间接寻址(即,它为您提供指针指向的对象),因此您需要执行两次间接寻址以获得指针指向的对象:
(**p).name
(*p)->name
如果person
是typedefed结构的名称,则get\u name(&person)
不正确;您需要该结构的一个实例,并且需要一个指向该实例的指针,该指针可以传递给函数:
int main() {
person p;
person* pp = &p;
get_name(&pp);
}
然而,还不清楚为什么
get_name
需要一个人**
;大概一个人*
就足够了。main的正确返回类型是int
,而不是void
。我知道这一点,但我想保留“return 0”;最后,我更改了它。
int main() {
person p;
person* pp = &p;
get_name(&pp);
}