有时我们在编程时,会有一个想法,比如将整数强制转换成指针类型,像这种想法,我相信程序猿都会有过。
现在我来写段代码来验证整数强制转成指针,是不是可行的。
int *p1, *p2;
p1 = (int*)100;? ?//编译通过
p2 = 200;? // 报错 类型不一致
下面直接来写代码编译运行,再输出两个指针值是100,200吗?
1 2 3 4 5 6 7 8 9 10 11 12 13 |
#include "stdafx.h" #include <iostream> int main() { int *p1, *p2; p1 = (int*)100; p2 = (int*)200; std::cout << p1 << " " << p2 << std::endl; system("pause"); return 0; } |
测试结果:
整数强制转成指针实际测试结果,可以看出输出的指针地址,是64和c8转成十进制刚好是100 和200,也就是说整数是可以强制转成指针类型的。但转换过去后又有什么用处了,这个还是要思考的问题,先就写到这里,后续如有实际运用,再写一篇。