读书人

(int)c是不是将c这个变量复制一份,转换

发布时间: 2012-05-23 13:44:13 作者: rapoo

(int)c是不是将c这个变量复制一份,转换复制的变量,还是将变量的值复制一份,转换复制的值呢?
(int)c是不是将c这个变量复制一份,转换复制的变量,还是将变量的值复制一份,转换复制的值呢?
到底是复制变量,还是复制值?

[解决办法]

探讨
引用:

引用:
(类型名)表达式
强制转换的精确含义是,表达式首先被赋给类型名指定类型的某个变量,然后再将其用在整个
构造所在的位置。


注意,强制转换只是以指明的类型产生n的值, n本身的值没有改变。

表达式首先被赋给类型名指定类型的某个变量,然后再将其用在整个
构造所在的位置。……

[解决办法]
是的 强制转换以后就是再堆栈中重新开一个4字节的单元存储这个转换以后的值 你可以用gdb查看以下堆栈 在举例说明下:如果有一个int i=1; 然后强制转换 (double)i 可以想象结果也是1 但是众所周知 double 的存储格式跟int是不一样的(高位为正负位 其次是11位的其他位(具体自己查阿 我忘记这个叫什么啦) 然后是52位的数据位) 如果不重新开辟地址怎么办? 请记住这个可是完全不一样的存储哈

读书人网 >C语言

热点推荐