Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/c/59.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C-如何从指向该值的指针访问该值?_C_Pointers - Fatal编程技术网

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);
}