有这样一段极其简单的c++代码,在Clion和vs2019内执行结果不同
class Circle {
public:
Circle() {
cout << "默认构造函数" << endl;
}
Circle(const Circle &c) {
cout << "引用构造函数" << endl;
}
};
Circle work1() {
Circle c1;
cout << (int *) &c1 << endl;
return c1;
}
void work2(Circle c) {
cout << (int *) &c << endl;
}
int main() {
Circle c2 = work1();
cout << (int *) &c2 << endl;
return 0;
}
clion环境:mingw-x64,cmake3.17.4
vs2019:默认x64环境
work2函数和主函数都输出了一个内存地址。
work2函数输出的形参c的内存地址,主函数输出work1函数返回的内存地址。
在jetbrains Clion中,这两个内存地址相同,但在vs2019内,这两个内存地址却不同,是为什么呢?
是与编译器有关吗?求大佬们解答,刚学c++,要吐了。