C – 如何从指向该值的指针访问值?

前端之家收集整理的这篇文章主要介绍了C – 如何从指向该值的指针访问值?前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
需要将此函数传递给指针的指针.
void get_name(person** p) {
    puts(p->name); // this is probably wrong
}

这就是我调用函数的方式(我也不确定):

int main() {
    ...

    get_name(&person); // is this wrong?

    ...
    return 0;
}

Person显然是一个带有name属性的结构,它是一个字符串.

你如何从** p中引用* p指向的值?

解决方法

x-> y只是(* x).y的快捷方式. *执行间接(即,它为您提供指针指向的东西),因此您需要执行间接两次以使事物指向指针指向的指针:
(**p).name
(*p)->name

如果person是typedefed结构的名称,则get_name(& person)不正确;你需要一个该结构的实例,你需要一个指向你可以传递给该函数的实例的指针:

int main() {
    person p;
    person* pp = &p;
    get_name(&pp);
}

但是,为什么get_name需要带人**并不完全清楚;大概是一个人*就足够了.

猜你在找的C&C++相关文章