我对这种类型的 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
该变量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)