关于C语言中类型转换符的知识

来源:百度知道 编辑:UC知道 时间:2024/07/07 07:36:36
(int)表达式;可以把“表达式”强制转换成int类型。类似的有(float),(double)等。

我还看到了这样组合成的类型转换符,(float (*)())。 它可以把变量转换为“指向返回值为浮点类型的函数的指针”。

谁可以给我些关于这样子组成类型转换符的相关知识么。
比如它的组成规则等。
1楼回答的那段是《C陷阱与缺陷》的那段话吧,我就是看到那里才来提问的,有没有更多其他详细点的资料呢

任何C变量的声明都由两部分组成:类型以及一组类似表达式的声明符。因此,
float *g(),(*h)();表示*g()与(*h)()是浮点表达式。因为()结合优先级额高于*,*g()也就是*(g());g是一个函数,该函数的返回值类型为指向浮点数的指针。同理,可以得出h是一个函数指针,h所指向函数的返回值为浮点类型。
一旦我们知道了如何声明一个给定类型的变量,那么该类型的类型转换符就很容易得到了:只需要把声明中的变量名和声明末尾的分号去掉,再将剩余的部分用一个括号整个“封装”起来即可。例如,因为下面的声明:
float (*h)();
表示h是一个指向返回值为浮点类型的函数的指针,因此,
(float (*)())
表示一个“指向返回值为浮点类型的函数的指针”的类型转换符。