char * const * (*a) (int b)

char * const * (*a) (int b), 按照c++ program language的读法,从右往左读,* 读作pointer to

把(*a) (int b看作整体,

(*a) (int b) is a pointer to a const pointer to char ,

而a指向的是一个函数,即函数指针

这样就好理解了,

a是一个函数指针,指向这样的一个函数:

参数是int, 返回类型是一个指向const指针的指针, 而这个const 指针指向的是char

例如:

char * const * func(int b) {

    string s = to_string(b);
    char * str = new char[s.length() + 1];
    strcpy_s(str, s.length() + 1,s.c_str());

    char * const pChar = str;

    return &pChar;
}


    char * const * (*a) (int b) = func;

    char *str = *(a(123));

    cout << str << endl;  //"123"

猜你喜欢

转载自www.cnblogs.com/AndrewGhost/p/9186852.html
今日推荐