| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 546 人关注过本帖
标题:请教关于C的一个小问题
只看楼主 加入收藏
achesser
Rank: 1
等 级:新手上路
帖 子:2
专家分:0
注 册:2008-2-27
收藏
 问题点数:0 回复次数:3 
请教关于C的一个小问题
char (*t)(short int); //请问如何理解
 int  *i;
 i=(char (*)(int))0;  //请问如何理解
2008-02-27 11:16
achesser
Rank: 1
等 级:新手上路
帖 子:2
专家分:0
注 册:2008-2-27
收藏
得分:0 
知道的请讲解一下!谢了!
2008-02-27 12:41
xianshizhe111
Rank: 1
等 级:新手上路
帖 子:1451
专家分:0
注 册:2007-12-8
收藏
得分:0 
理解的不透,不好给你讲解.
2008-02-27 12:45
wubizao
Rank: 1
来 自:荆州长大电信
等 级:新手上路
帖 子:223
专家分:0
注 册:2006-6-24
收藏
得分: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]]

在路上走,看见了C,从此爱上了她
2008-02-27 17:21
快速回复:请教关于C的一个小问题
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.030267 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved