Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/125.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 somefunction(structuraltype **something) { something???variable = 6; } 只需取消对第一个指针的引用即可访问第二个指针,然后可以使用该指针访问对象成员: void somefunction(structuraltype **something)

我有一个类似的函数(简化的例子):

如您所见,我可以使用->

但我意识到我必须使用指针对指针,而不是单个指针。
你能给我解释一下在这种情况下我应该如何获取价值吗

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;
}
您可以将其应用于每一级间接寻址:

void somefunction(structuraltype** something) {
    (*(*something)).variable = 6;
}
外部间接级别始终可以替换为
->
,如下所示:

void somefunction(structuraltype** something) {
    (*something)->variable = 6;
}
但使用指针的引用可能比使用指针的ponter更常见:

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;
}
但使用指针的引用可能比使用指针的ponter更常见:

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

为什么需要使用指向指针的指针?请尝试:(*something)->variable=6;您所展示的函数没有理由需要将指针指向指针。它也不需要简单的指针参数。将参数设为引用。以前,我只使用该函数读取变量值。但现在我也需要改变它们。如果我不使用附加指针,值就不能超出函数。这是错误的:“如果我不使用附加指针,值就不能超出函数”。你根本不需要使用指针。通过引用传递参数。为什么需要使用指向指针的指针?请尝试:(*something)->variable=6;您所展示的函数没有理由需要将指针指向指针。它也不需要简单的指针参数。将参数设为引用。以前,我只使用该函数读取变量值。但现在我也需要改变它们。如果我不使用附加指针,值就不能超出函数。这是错误的:“如果我不使用附加指针,值就不能超出函数”。你根本不需要使用指针。通过引用传递论点。这回答了技术问题,但对于新手来说,这不是一个好的方向。为了节省汽油,你会建议新手司机加满水吗?从技术上讲,它确实做到了这一点:从技术上讲,这是一个好答案。@TheSorter:在我看来,雷米只是在获取代表分数。否则他会在乎他在教你什么。@cheers-sandhth.-Alf你为什么要这样说?你看过他的作品吗?我认为你错了。这回答了技术问题,但对于新手来说,这不是一个好的方向。为了节省汽油,你会建议新手司机加满水吗?从技术上讲,它确实做到了这一点:从技术上讲,这是一个好答案。@TheSorter:在我看来,雷米只是在获取代表分数。否则他会在乎他在教你什么。@cheers-sandhth.-Alf你为什么要这样说?你看过他的作品吗?我想你错了。那也会有用的,我每次需要的时候都会回来检查。那也会有用的,我每次需要的时候都会回来检查