小弟我自己定义的类型修饰符,不会用请大家指教
我自己定义的类型修饰符,不会用请大家指教.
char * qq(int)
{
char c[]= "盛大 ";
return c;
}
int main(int argc, char* argv[])
{
typedef char *fun(int); //简单的自定义类型修饰符我懂,但是这样复杂的自定义类型修饰符我却不能理解
//上面所定义的是一个什么数据类型啊,应当怎么配合上面的函数使用啊,请各位帮忙解释一下,谢谢了.
cin.get();
return 0;
}
------解决方案--------------------
typedef char* (*Fun)(int);
Fun f = qq;
f(1);
------解决方案--------------------
一定是楼主写错了,应该如楼上:
typedef char* (*Fun)(int);
定义了一个指向函数的指针类型Fun,指向的函数返回值是char*, 形参是一个int
下面用Fun定义变量,即是指向这种函数的指针了,即:
Fun p=qq;
p(100); //调用方法,相当于qq(100)
另外楼主的qq函数有问题,返回了一个指向栈内变量的指针,是错的,要改一下:
char * qq(int)
{
static char c[]= "盛大 "; //声明为静态即可
return c;
}
------解决方案--------------------
typedef char *fun(int);
函数指针类型
http://dugujian.bokee.com/397878.html
http://www.jr163.org/cup2/21/21479.htm
http://www.webpc8.com/Article/c/zz/200603/Article_4812.html
------解决方案--------------------
MARK && STUDY
char * qq(int)
{
char c[]= "盛大 ";
return c;
}
int main(int argc, char* argv[])
{
typedef char *fun(int); //简单的自定义类型修饰符我懂,但是这样复杂的自定义类型修饰符我却不能理解
//上面所定义的是一个什么数据类型啊,应当怎么配合上面的函数使用啊,请各位帮忙解释一下,谢谢了.
cin.get();
return 0;
}
------解决方案--------------------
typedef char* (*Fun)(int);
Fun f = qq;
f(1);
------解决方案--------------------
一定是楼主写错了,应该如楼上:
typedef char* (*Fun)(int);
定义了一个指向函数的指针类型Fun,指向的函数返回值是char*, 形参是一个int
下面用Fun定义变量,即是指向这种函数的指针了,即:
Fun p=qq;
p(100); //调用方法,相当于qq(100)
另外楼主的qq函数有问题,返回了一个指向栈内变量的指针,是错的,要改一下:
char * qq(int)
{
static char c[]= "盛大 "; //声明为静态即可
return c;
}
------解决方案--------------------
typedef char *fun(int);
函数指针类型
http://dugujian.bokee.com/397878.html
http://www.jr163.org/cup2/21/21479.htm
http://www.webpc8.com/Article/c/zz/200603/Article_4812.html
------解决方案--------------------
MARK && STUDY