在C++中定义一个变量,例如:int a; 此时已经为a分配空间了吗

2024-12-31 14:08:49
推荐回答(5个)
回答1:

看你定义的变量的类型

1) 堆
int* a = new int[100];//运行到这里才给a指向的空间分配
2) 栈
void fun()
{
int a[100]; // 进入函数fun的时候从栈上分配
}
3) 全局变量,常量
程序启动时分配
4) static
void fun()
{
static int a[100]; // 第一次运行到这里时分配
}

所以说如果你定义的是全局变量,程序启动时分配内存,如果是局部变量,则运行到那里时才分配!

回答2:

定义分为定义性声明和应用性声明,第一种为定义,其实这只是狭义的定义和声明,你所说的状况要分情况,例如如果a是一个全局变量,那么int a就是声明,扩展作用域,如果int a;a= 0;那就是定义。这两种情况都已经分配内存空间。

回答3:

是的,已经分配空间了。

回答4:

int a;是在栈中分配了内存。
int *a=new int;//在堆中分配了内存

回答5:

是的…………