Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/159.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++_C++11 - Fatal编程技术网

C++ 什么';函数参数声明的含义是什么?

C++ 什么';函数参数声明的含义是什么?,c++,c++11,C++,C++11,我在报纸上看到过这个 int(*(*x)(double))[3]的含义是什么?(*x)确保x是指针,然后(*x)(double)将给我们一个参数为double的函数指针,下一个是(*(*x)(double))这意味着函数将返回一个指针p,p由int-int(*p)[3]描述,它最终给我们一个指向int[3]数组的指针。 总之,我们这里有一个指向函数的指针,这个函数的单个参数是double,函数返回一个指向int数组的指针[3] 这里有一个简单的例子来演示,希望能对大家有所帮助 #include

我在报纸上看到过这个

int(*(*x)(double))[3]的含义是什么?

(*x)
确保
x
是指针,然后
(*x)(double)
将给我们一个参数为double的函数指针,下一个是
(*(*x)(double))
这意味着函数将返回一个指针
p
p
int-int(*p)[3]
描述,它最终给我们一个指向
int[3]数组的指针。

总之,我们这里有一个指向函数的指针,这个函数的单个参数是double,函数返回一个指向int数组的指针[3]

这里有一个简单的例子来演示,希望能对大家有所帮助

#include <iostream>
using namespace std;

typedef int int3[3];
int arr3[3]{1, 2, 3};

int3 * get3Int(double x){
    int (*arr)[3] = &arr3;
    return arr;
}

int testFunctionPointer(int (*(*x)(double))[3]){
    int (*arr)[3] = x(1.0);
    for(auto n: *arr)
        cout<<n<<endl;
    return 0;
}

int main(){
    testFunctionPointer(get3Int);
    return 0;
}
#包括
使用名称空间std;
typedef int int3[3];
int-arr3[3]{1,2,3};
int3*get3Int(双x){
int(*arr)[3]=&arr3;
返回arr;
}
int testFunctionPointer(int(*(*x)(双精度))[3]){
int(*arr)[3]=x(1.0);
用于(自动n:*arr)
你能帮忙吗?
#include <iostream>
using namespace std;

typedef int int3[3];
int arr3[3]{1, 2, 3};

int3 * get3Int(double x){
    int (*arr)[3] = &arr3;
    return arr;
}

int testFunctionPointer(int (*(*x)(double))[3]){
    int (*arr)[3] = x(1.0);
    for(auto n: *arr)
        cout<<n<<endl;
    return 0;
}

int main(){
    testFunctionPointer(get3Int);
    return 0;
}