指针函数问题求助,谢谢!

来源:百度知道 编辑:UC知道 时间:2024/06/23 02:42:33
char code[] = "bytecode will go here!";
int main(int argc, char **argv)
{
int (*func)();
func = (int (*)()) code;
(int)(*func)();
}
以上代码中的int (*func)()和(int)(*func)()有区别吗? 并且详细解释这整段代码,因为main函数里的语法我都不是很懂。
程序肯定没问题,专家写的,测试过的~

你程序本身有问题吧
怎么看着怪怪的
做的都是没意义的事哦
int (*func)()和(int)(*func)()
只不过的INT的区别嘛,没什么区别啊
如果是int (*func)()和*(int(*func))()就有区别了

有细小区别,前者是对这个指向函数的指针的定义,后者是强制类型转换。
在C++里,函数也可以拥有指向它的指针。
这里的int (*func)()是一个指向函数的指针,如:
如果前面定义了一个函数
int function ()
{
printf("Hello!");
return 0;
}
那么后面定义的
int (*func)()实际上就是指向函数的指针。
func = &function();
这其实只是给函数“换个名字”罢了。
你这段程序前面应该还有东西,因为这段程序无法编译,能把前面的写出来么?

此外,关于函数指针的问题,这里给出一个例子,希望对你有所帮助:
#include <iostream>
using namespace std;

//定义函数
int print(int i)
{
for (int k=0; k<i; k++)
cout<<"Hello!"<<"\n";
return 0;
}

int main()
{
int (*fun)(int); //定义指向函数的指针
fun = &print; //获取函数地址
fun(5); //调用函数
return 0;
}

你的程序是这样解释的:
第一句:定义了一个字符型数组code,并赋予一个字符串
第二句:是main()主函数
第三句:是定义了一个可以指向函数的指针变量func