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

感谢回答!各种类型的变量分别占用多少的内存?... 感谢回答!各种类型的变量分别占用多少的内存? 展开
 我来答
镭毅
2012-09-24 · TA获得超过1394个赞
知道大有可为答主
回答量:1155
采纳率:0%
帮助的人:1083万
展开全部
变量定义的同时,必然分配内存,但有一些的动态分配的。

例如: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.
栈:存储参数和局部变量。
冰清翔龙
推荐于2018-04-12 · 超过15用户采纳过TA的回答
知道答主
回答量:31
采纳率:100%
帮助的人:36.7万
展开全部
只要是在栈上分配的,都是在声明的时候分配了内存。如果是在堆上面分配内存的,就是在编译的时候分配

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

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

自己定义的结构体就另外计算
本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
xbw3210
2012-09-24
知道答主
回答量:8
采纳率:0%
帮助的人:3.9万
展开全部
声明变量比如int a;这样编译器是不会分配内存控件的,int b=10;是会分配内存控件,程序结束后会自动释放
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
zylikeE
2012-09-24 · 超过11用户采纳过TA的回答
知道答主
回答量:64
采纳率:0%
帮助的人:35万
展开全部
声明变量比如char a;这样编译器是不会分配内存控件的;int d=1是会分配内存控件,程序结束后会自动释放
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
晓晨之巅
2012-09-30 · 超过10用户采纳过TA的回答
知道答主
回答量:48
采纳率:100%
帮助的人:27.3万
展开全部
一般是的,但是有有一种内存分配叫动态分配内存,C里一般涉及函数有malloc,relloc,calloc,C++一般是new,这些内存分配后,一般要求程序设计者在用完后将其释放。
各类型变量所占内存字节数视系统位数而定。例如16的机子而言:char 1字节,int 2字节,float 2字节,double 8字节。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(9)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式