c++的类内初始化给成员变量赋值,是在代码编译阶段在栈上开辟一块内存吗?
运行阶段
首要你要明白,编译阶段做了什么?编译只是将你的代码编译成执行文件,并不会进行内存申请。
然后就需要区分你对象的写法了如果是个 指针,运行到了这行的时候才会进行内存申请,这个叫做堆内存。
如果用的是对象的方式初始化对象,在你程序启动的时候就会申请内存,这个叫做栈内存,栈内存是有限的。
// 代码是不是很简单,看着没问题,实际你运行下就挂了, 因为栈内存无法满足 arr 的需求
int main()
{
int arr[1000000];
return 0;
}