查看运行结果

简介: 看下列代码的运行结果#include "pch.h"#includeusing namespace std;class A{public: A() { a = 1; b = 2; }pri...

看下列代码的运行结果

#include "pch.h"
#include<iostream>
using namespace std;

class A
{
public:
	A()
	{
		a = 1;
		b = 2;
	}
private:
	int a;
	int b;
};
class B
{
public:
	B()
	{
		c = 3;
	}
	void print()
	{
		cout << c;
	}
private:
	int c;
};
int main(int argc, char* argv[])
{
	A a;
	B* pb = (B*)(&a);
	pb->print();
	return 0;
}

 

运行结果:

1

 解释:

 

把a转成了一个长度为2的数组
那个B*指针是可以++的

只读到了第一个元素

B* pb = (B*)(&a);
这里,pb是一个数组的首地址

  

 

 

改成这样,输出结果就是2了

#include "pch.h"
#include<iostream>
using namespace std;

class A
{
public:
	A()
	{
		a = 1;
		b = 2;
	}
private:
	int a;
	int b;
};
class B
{
public:
	B()
	{
		c = 3;
	}
	void print()
	{
		cout << c;
	}
private:
	int c;
};
int main(int argc, char* argv[])
{
	A a;
	B* pb = (B*)(&a);
	(pb+1)->print();
	return 0;
}

 

不信你试试

相关文章
|
2月前
|
自然语言处理 Java 编译器
程序是如何运行的(一)
程序是如何运行的(一)
|
7月前
|
监控 Java 编译器
JVM运行命令
JVM运行命令
58 0
|
9月前
|
SQL IDE 关系型数据库
Ascent运行指南
Ascent运行指南
62 0
|
12月前
|
测试技术
loadrunner 运行场景-运行时设置
loadrunner 运行场景-运行时设置
236 0
|
12月前
|
测试技术
loadrunner 运行场景-命令行运行场景
loadrunner 运行场景-命令行运行场景
106 0
|
12月前
|
测试技术
loadrunner 运行场景-场景运行原理
loadrunner 运行场景-场景运行原理
85 0
让程序只运行一个实例的简单实用的方法  
让程序只运行一个实例的简单实用的方法  
|
Java 程序员 编译器
CPU中的程序是怎么运行起来的
CPU中的程序是怎么运行起来的
153 0
CPU中的程序是怎么运行起来的
|
Android开发
为什么脚本不停止运行?
牙叔教程 简单易懂
262 0
|
Kubernetes 网络协议 安全
本地k8s运行总结
本机上运行k8s的各种不同软件的对比和结构图
428 0