如何理解这段代码的运行结果
  • 板块学术版
  • 楼主TLEWA
  • 当前回复2
  • 已保存回复2
  • 发布时间2023/10/2 18:14
  • 上次更新2023/11/2 16:30:43
查看原帖
如何理解这段代码的运行结果
515129
TLEWA楼主2023/10/2 18:14
#include<bits/stdc++.h>

using namespace std;

function<void()> func;
int *c;

void a() {
	int b=3;
	c=&b;
	func=[&](){cout << b << ' ';};
}

int main() {
	a();
	func();
	cout << (*c) << ' ';
	func();
	cout << (*c) << ' ';
	return 0;
}


rt,在我的电脑上,前两个输出为 3,后两个输出为相同的两个随机三位数,在洛谷上后两个为 0

这个输出和 C++ 的垃圾回收(姑且叫这个吧,就是局部变量的销毁)机制有何关联呢?std::function 的运作原理又是什么?lambda 表达式的引用在什么情况下是安全的呢?

2023/10/2 18:14
加载中...