0
私はint (*(*x)(double))[3]
の意味は何ですか?http://en.cppreference.com/w/cpp/language/function関数のパラメータ宣言の意味は?
int f(int a, int *p, int (*(*x)(double))[3]);
でこれを見ていますか
私はint (*(*x)(double))[3]
の意味は何ですか?http://en.cppreference.com/w/cpp/language/function関数のパラメータ宣言の意味は?
int f(int a, int *p, int (*(*x)(double))[3]);
でこれを見ていますか
(*x)
x
を確保するには、ポインタが、その後(*x)(double)
は私たちにそのパラメータダブル、横にある機能は、最後に私たちに与えるint int (*p)[3]
によってp
とp
が描かれているポインタを返すことを意味します(*(*x)(double))
ある関数ポインタを与えるです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;
}
[cdecl](http://cdecl.org)をレスキューするには? – tadman