更改指针指针的值

时间:2016-12-31 00:58:53

标签: c++ pointers

所以我有一个类似的功能(简化示例):

void somefunction(structuraltype *something) {

    something->variable = 6;

}

正如您所见,我可以使用 - >轻松访问值

但我意识到我必须使用指针指针而不是单个指针 能告诉我在这种情况下如何获得价值?

void somefunction(structuraltype **something) {

    something???variable = 6;

}

2 个答案:

答案 0 :(得分:4)

只需取消引用第一个指针即可访问第二个指针,然后您可以使用它来访问对象成员:

void somefunction(structuraltype **something) {    
    (*something)->variable = 6;    
}

答案 1 :(得分:2)

相当于:

void somefunction(structuraltype* something) {
    something->variable = 6;
}

是这个

void somefunction(structuraltype* something) {
    (*something).variable = 6;
}

您可以为每个间接级别应用它:

void somefunction(structuraltype** something) {
    (*(*something)).variable = 6;
}

间接的外层可以始终用->替换,如:

void somefunction(structuraltype** something) {
    (*something)->variable = 6;
}

但是使用对指针的引用可能比指针的引用更常见:

void somefunction(structuraltype*& something) {
    something->variable = 6;
}