2016-11-27 80 views

回答

2

(*x)确保x是一个指针,然后(*x)(double)会给我们一个函数指针,其参数是一个双和其次是(*(*x)(double))这意味着该函数将返回一个指针pp描述由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; 
} 
相关问题