当前位置: 代码迷 >> C语言 >> 请教关于C的一个小问题
  详细解决方案

请教关于C的一个小问题

热度:112   发布时间:2008-02-27 11:16:33.0
请教关于C的一个小问题
char (*t)(short int); //请问如何理解
int  *i;
i=(char (*)(int))0;  //请问如何理解
----------------解决方案--------------------------------------------------------
知道的请讲解一下!谢了!
----------------解决方案--------------------------------------------------------
理解的不透,不好给你讲解.
----------------解决方案--------------------------------------------------------
个人愚见:
任何C变量得声明的都由两部分组成
类型以及一组类似表达式的声明符;最简单的声明符就是单个变量!
例如:
float f, g;
表明对其求植的时候,表达式f和g的类型为浮点类型(float)

char (*t)(short int)
此表明(*t)(short int)为char型,而(*t)(short int)表明此为函数!
t是一个函数指针,函数参数类型为short int
所以此声明表明:t是一个函数指针,t所指向的函数返回值为char型.

一旦我们知道如何声明一个给定的变量,那么该类型的类型转换符就很容易
得到了
如何得到?
so easy!
只需把声明中的变量名和声明末尾的分号去掉,再将剩下的部分用一个括号
"封装"起来即可!
所以(char(*)(int)表明是一个"指向返回值为char型的函数的指针"
该理解下面式子的意思了吧
i=(char (*)(int))0;

[[it] 本帖最后由 wubizao 于 2008-2-27 17:23 编辑 [/it]]
----------------解决方案--------------------------------------------------------
  相关解决方案