哪位C语言高手帮我看看下面的函数指针的问题,谢谢。

[复制链接]
查看11 | 回复1 | 2011-3-2 14:00:47 | 显示全部楼层 |阅读模式
为什么 用 pthread(1,2);代替 (int*)pthread(1,2); 程序也不会出错,而且运行结果也一样,请问这两句有什么区别???????????????
#include
int main()
{
int* and(int x,int y);
int* (*pthread)(int,int)=and;

(int*)and(1,2);

//pthread(1,2);
(int*)pthread(1,2);

return 0;
}
int* and(int x,int y)
{
printf("x+y=%d\n",x+y);
return 0;
}

回复

使用道具 举报

千问 | 2011-3-2 14:00:47 | 显示全部楼层
打在函数和变量前面的如(int *)都叫做强制类型转换,意思就是类型变了,但是原来是什么值 还是什么值,比如原来是整型数15,强制转换成整型指针(0X0000000f),值本身没有任何变化的,只是为了符合所赋给变量的类型而以,使得编译器编译时不会给出警告。
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

主题

0

回帖

4882万

积分

论坛元老

Rank: 8Rank: 8

积分
48824836
热门排行