首页 > 编程语言 > 详细

C++类型双关

时间:2021-06-17 17:00:03      阅读:20      评论:0      收藏:0      [点我收藏+]

Σ(っ °Д °;)っ

#include<iostream>

struct Entity
{
	int x, y;
	int* GetPtr()
	{
		return &x;
	}
	/*Entity* GetPtr()
	{
		return this;
	}*/
};

int main()
{
	Entity e = { 1,2 };
	int* ptr = (int*)&e;

	int x = *(int*)((char*)&e);
	int y = *(int*)((char*)&e + 4);

	std::cout << x << " " << y << " " << ptr[0] << " " << ptr[1] << std::endl;
	//	1 2 1 2
	ptr = e.GetPtr();
	//ptr = (int*)e.GetPtr();
	ptr[0] = 4;
	ptr[1] = 5;

	std::cout << ptr[0] << " " << ptr[1] << std::endl;
	// 4 5
	std::cin.get();
}

C++类型双关

原文:https://www.cnblogs.com/chengmf/p/14893823.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!