c语言是在声明变量的同时,分配内存的吗?程序结束运行了,内存会释放吗?

感谢回答!各种类型的变量分别占用多少的内存?

变量定义的同时,必然分配内存,但有一些的动态分配的。

例如:int 4字节;char 1字节;float 4字节,double 8字节

以下宫参考:

The memory a program uses is typically divided into four different areas:
C++将程序内存分为4个区:
The code area, where the compiled program sits in memory.
代码区:程序体所在的区域;
The globals area, where global variables are stored.
全局区:存储全局变量;
The heap, where dynamically allocated variables are allocated from.
堆:存储动态分配的变量;
The stack, where parameters and local variables are allocated from.
栈:存储参数和局部变量。
温馨提示:答案为网友推荐,仅供参考
第1个回答  推荐于2018-04-12
只要是在栈上分配的,都是在声明的时候分配了内存。如果是在堆上面分配内存的,就是在编译的时候分配

int* p = (int*)malloc(4 * sizeof(int));
p 这个指针是分配了内存的,而它指向的地址就是运行到这里才分配的

一般有这几种类型
类型 字节
char 1
short 2
int 4

自己定义的结构体就另外计算本回答被网友采纳
第2个回答  2012-09-24
声明变量比如int a;这样编译器是不会分配内存控件的,int b=10;是会分配内存控件,程序结束后会自动释放
第3个回答  2012-09-24
声明变量比如char a;这样编译器是不会分配内存控件的;int d=1是会分配内存控件,程序结束后会自动释放
第4个回答  2012-09-30
一般是的,但是有有一种内存分配叫动态分配内存,C里一般涉及函数有malloc,relloc,calloc,C++一般是new,这些内存分配后,一般要求程序设计者在用完后将其释放。
各类型变量所占内存字节数视系统位数而定。例如16的机子而言:char 1字节,int 2字节,float 2字节,double 8字节。
相似回答