强制类型转换熟练者请进入!

Linux2001 2002-04-22 11:27:21
我时常会被C++中的强制类型转换弄的头大,哪位高手愿意给我讲解一下!
现在有这样一句
UINT* pwSche
(WORD&)(*pwShe)这样一句有什么意义?
还有一个问题
*号的摆放位置有没有什么问题,有些程序int *p,有些是int* p;
上面两句有没有分别?
...全文
120 12 打赏 收藏 转发到动态 举报
写回复
用AI写文章
12 条回复
切换为时间正序
请发表友善的回复…
发表回复
w_j76 2002-06-20
  • 打赏
  • 举报
回复
up
mylove0618 2002-04-22
  • 打赏
  • 举报
回复
赞成wrenny的说法。其余表述有问题。应该是将指针pwShe指向的内容强制转换为word型的引用。即:(word&)(*pwShe)等价于:
{temp=*pwShe;(word&)temp;}
而*的位置就随意了。没有区别。
晨星 2002-04-22
  • 打赏
  • 举报
回复
int* p , int *p 和int * p,都对,因为编译器把int和*当作两个类型符而p作为一个标志符,所以他们在一起还是分开,以及怎么分都无所谓。
同样的道理,i+j , i + j , i+ j , i +j四个的含义也是一样。
maoliao 2002-04-22
  • 打赏
  • 举报
回复
新的C++强制转换类型函数有4个,详细请看《More effective C++》条款2

他们是:
static_cast 强制类型转换,同传统强制类型转换
const_cast 仅转换掉Const
dynamic_cast 动态类型转换
reinterpret_cat 用于函数指针类型


gufengduyu 2002-04-22
  • 打赏
  • 举报
回复
就是将UINT转为WORD
有&表示转成WORD的引用
至于*的位置,两种都一样
golden_silence 2002-04-22
  • 打赏
  • 举报
回复
(WORD&)(*pwSche)的意思是将pwSche指向的UINT强制转换为类型为WORD的引用
至于第二个问题,*的摆放位置没什么问题,这两种情况都可以,主要看个人习惯。
wrenny 2002-04-22
  • 打赏
  • 举报
回复
int *p,和int* p 是没什么本质上的区别的,
(WORD&)(*pwShe)是把*pwshe强制转换为word型,侯捷老师的mfc上好象有详细的说明
dev_uoboy 2002-04-22
  • 打赏
  • 举报
回复
(WORD&)(*pwShe)意思是将UNIT类型(实际上是int)的指针强制转换成 WORD类型

*的位置没有区别,只是编程习惯的问题。

比如int * p ,int *p ,int* p都是同一个意思。

sygr 2002-04-22
  • 打赏
  • 举报
回复
将(WORD&)(*pwShe)改成(WORD)(*pwShe)是可以的,但意义不同,
前者是将它转换成WORD的引用,而者则是转换成WORD类型
zosatapo 2002-04-22
  • 打赏
  • 举报
回复
对于
*号的摆放位置有没有什么问题,有些程序int *p,有些是int* p;

补充:
以前c版本是一样的,但是最新修订的标准会改变这样状况。
Linux2001 2002-04-22
  • 打赏
  • 举报
回复
还有一个比较重要的要问一下大家,这一句(WORD&)(*pwShe)改成(WORD)(*pwShe)可不可以?如果改了以后意义有没有改变
Linux2001 2002-04-22
  • 打赏
  • 举报
回复
非常感谢大家,看来我的基础还有点欠缺啊,非常感谢啊
To:wrenny(鱼的眼泪)
我没有看到侯杰老师的书上有讲强制类型转换的内容啊

69,382

社区成员

发帖
与我相关
我的任务
社区描述
C语言相关问题讨论
社区管理员
  • C语言
  • 花神庙码农
  • 架构师李肯
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧