本文主要是介绍C++类型转化cast from pointer to smaller type ‘int‘ loses information,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
- 代码如下
#include <iostream>int main() {int a = 10;std::cout << (int)&a << std::endl;return 0;
}
- 编译
这段代码是要将地址转化成整数类型,但是在编译时编译器告诉我们这是错的,因为在C++中,将指针转换为int类型的整数是一个不安全的操作,并且可能会导致数据丢失。
如果你需要以整数形式打印指针的地址,可以使用合适的整数类型,例如uintptr_t,这是一个无符号整数类型,足以容纳指针的位数。 - 下面是修改后的代码
#include <iostream>int main() {int a = 10;std::cout << reinterpret_cast<uintptr_t>(&a) << std::endl;return 0;
}
这篇关于C++类型转化cast from pointer to smaller type ‘int‘ loses information的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!