(int)a和(int &)a区别
2013-05-06 22:03
239 查看
float a = 1.0f; cout < < (int)a < < endl; //1 cout < < (int&)a < < endl; //1065353216
浮点数的 1.0f
在内存里是这样表示的:
0011 1111 1000 0000 00000000 00000000
(int&)a:将a的引用强制转换为整型,意思是a所在的内存,本来定义的时候为float类型,并初始为1.0f,
但现在我要按int类型
解释这段内存(也就是说a所在的内存地址中的数据本来是按float型存储表示的,你非要按int型来解释不可)。
1.0f
在内存中的存储为0011 1111 1000 0000 00000000 00000000
把他按整型数解释为2^29+2^28+2^27+2^26+2^25+2^24+2^23=1065353216
(int&)a 相当于*(int*)&a ; *(int*)(&a) ; *((int*)&a)
(int)a
呢不同:如果 a 不是整数,就会按规则转换成整数,存入另一个地址(或临时变量)中去。
相关文章推荐
- (int)a、&a、(int)&a、(int&)a的区别,很偏僻的题
- 有关(int&)和(int)的区别
- C++中int、int&、int*和int**的区别与联系、用途
- 强制转化 (int)、(int&)和(int*)的区别
- (int&)a和(int)a, (int)&a, &a的区别
- (int&)和(int)的区别
- int *pa(指针)和int *&pa(指针的引用)的区别
- vector<int>::iterator和vector<int*>::iterator还有vector<int>*的区别
- (int&)a和(int)a的区别
- (int&)a和(int)a的区别
- int *const && int const * && const int *的区别
- 参数 void aa(int a,int b) 与 void aa(int* a,int* b) 与 void aa(int& a,int& b)区别
- const int& x和 int const &x真的有区别嗎?
- [JAVA · 初级]:2.变量 & Integer和int的区别
- int *pa(指针)和int *&pa(指针的引用)的区别
- int *&p与int *P的区别
- C++中static_cast、const_cast、reinterpret_cast的用法举例,附带举例说明强制类型转换时int和int&的区别
- (int&amp;)a和(int)a的区别
- int const* func(const int&) | const int* func(const int&) | int *func() const区别
- (int)a、&a、(int)&a、(int&)a区别