函数中指向数组的双指针,如何访问

A. *_*nez 1 c arrays pointers

我对这种类型的 C 代码有点困惑(抱歉这个基本问题):

void double_function(double **arr){
printf("Value at 1: %f \n", arr[1]);
}

int main() {

double arr[3] = {0.11,1.2,2.56};
double_function(&arr);

}
Run Code Online (Sandbox Code Playgroud)

这不会打印 1.2 值。我也尝试过*(arr)[1](*arr[1])但似乎无法访问它。有人可以帮助澄清有关如何访问数组的符号吗?谢谢。编辑:请注意,规范要求该函数采用double **arr

All*_*ind 5

该变量arr是一个双精度数组,并且您明确表示要传入一个指向指针的指针。使用临时的(double *) { arr },所以我们传入它的地址&(double *) { arr }

#include <stdio.h>

void double_function(double **arr){
    printf("Value at 1: %f \n", (*arr)[1]);
}

int main() {
    double arr[3] = {0.11,1.2,2.56};
    double_function(&(double *) {arr});
}
Run Code Online (Sandbox Code Playgroud)