声明一个变量占空间吗?

请问:声明变量inti,系统是否已经为变量i分配了空间?如果是的话,具体分配了多少空间?为什么不等到初始化的时候才分配空间,这样不是浪费了空间吗?... 请问:声明变量int i ,系统是否已经为变量i分配了空间?
如果是的话,具体分配了多少空间?
为什么不等到初始化的时候才分配空间,这样不是浪费了空间吗?
展开
 我来答
zdingyun
推荐于2017-09-15 · 知道合伙人软件行家
zdingyun
知道合伙人软件行家
采纳数:15429 获赞数:48179
1982年上海业余工业大学化工系毕业 现退休

向TA提问 私信TA
展开全部
在计算机编程中声明一个变量并不一定占用内存空间。
计算机编程中声明的含义当一个计算机程序需要调用内存空间的时候,对内存发出的“占位”指令,我们称之为“声明”。

声明一个变量只是将变量名标识符的有关信息告诉编译器,使编译器“认识”该标识符,但是声明并不一定引起内存的分配!而定义一个变量意味着给变量分配内存空间,用于存放对应类型的数据,变量名就是对相应的内存单元的命名!
C++程序中,大多数情况下变量声明也就是变量定义,声明变量的同时也就完成了变量的定义,只有声明外部变量时例外!
VB程序,Dim 语句,声明变量并分配存储空间。
当然这些语句实际是在程序运行或调试时才真正起作用,也有一些是在程序运行中还会发生动态数组变量的再定义而改变占用内存空间的。
参考:http://baike.baidu.com/link?url=Z503RhGcB9RqKiR6BtzX6ISS2f7MQPLRkoijqYzbkAFe1bm6UEYaGAc5Q7z3CdJtjsyy-J8A9gwQXSg9uujQKQ3YdClNe6hzq4wOQHBwfUG
手牵手的幸福cl
高粉答主

2018-04-12 · 每个回答都超有意思的
知道大有可为答主
回答量:380
采纳率:100%
帮助的人:7万
展开全部

计算机编程中声明一个变量并不一定占用内存空间。

计算机编程中声明的含义当一个计算机程序需要调用内存空间的时候,对内存发出的“占位”指令,我们称之为“声明”。

声明一个变量只是将变量名标识符的有关信息告诉编译器,使编译器“认识”该标识符,但是声明并不一定引起内存的分配!而定义一个变量意味着给变量分配内存空间,用于存放对应类型的数据,变量名就是对相应的内存单元的命名。

C++程序中,大多数情况下变量声明也就是变量定义,声明变量的同时也就完成了变量的定义,只有声明外部变量时例外。

VB程序,Dim 语句,声明变量并分配存储空间。

当然这些语句实际是在程序运行或调试时才真正起作用,也有一些是在程序运行中还会发生动态数组变量的再定义而改变占用内存空间的。

变量来源于数学,是计算机语言中能储存计算结果或能表示值抽象概念。变量可以通过变量名访问。

在指令式语言中,变量通常是可变的;但在纯函数式语言(如Haskell)中,变量可能是不可变(immutable)的。在一些语言中,变量可能被明确为是能表示可变状态、具有存储空间的抽象(如在Java和Visual Basic中);但另外一些语言可能使用其它概念(如C的对象)来指称这种抽象,而不严格地定义“变量”的准确外延。

本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
小马3727
推荐于2017-09-14 · 超过19用户采纳过TA的回答
知道答主
回答量:89
采纳率:0%
帮助的人:58.6万
展开全部
计算机是根据程序的功能在程序执行时做相应改变。比如分配空间,关机,计算等等。比如声明变量,我们写程序时计算机不会分配空间,执行时才分配。具体分配多少要根据编译器而定,书上都有讲。提前分配空间能够使程序按部就班的稳步执行。你试想下,假如你去电影院看电影,是先指定座位再就座好,还是等到进影院后,需要坐下时再随便找座位坐下的好。社会需要秩序,程序也需要。当然你也可以初始化和分配空间一起进行。int i=0;
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
鷹弈
2011-02-01 · TA获得超过5194个赞
知道大有可为答主
回答量:1257
采纳率:0%
帮助的人:627万
展开全部
声明的时候不占空间

运行程序的时候,执行到int i;语句时,系统才会给i分配空间

具体多少?跟编译器有关,比如VC++6.0分配4个字节,TurboC分配2个字节

只要你不定义多余变量,自然就不会浪费空间
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
bad12358
2011-02-01 · TA获得超过343个赞
知道小有建树答主
回答量:222
采纳率:0%
帮助的人:279万
展开全部
像你说的已经分配了空间。分配的空间大小可用sizeof(i)来查看,
#include "iostream.h"
void main()
{
int i=9;
cout<<sizeof(i)<<endl;
}
可以看到分配了4
如果你要到用时才分配,用指针
int *i;
用时
i=new int;
i=9;(你要的值)
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(6)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式