声明一个变量占空间吗?
如果是的话,具体分配了多少空间?
为什么不等到初始化的时候才分配空间,这样不是浪费了空间吗? 展开
推荐于2017-09-15 · 知道合伙人软件行家
计算机编程中声明的含义当一个计算机程序需要调用内存空间的时候,对内存发出的“占位”指令,我们称之为“声明”。
声明一个变量只是将变量名标识符的有关信息告诉编译器,使编译器“认识”该标识符,但是声明并不一定引起内存的分配!而定义一个变量意味着给变量分配内存空间,用于存放对应类型的数据,变量名就是对相应的内存单元的命名!
C++程序中,大多数情况下变量声明也就是变量定义,声明变量的同时也就完成了变量的定义,只有声明外部变量时例外!
VB程序,Dim 语句,声明变量并分配存储空间。
当然这些语句实际是在程序运行或调试时才真正起作用,也有一些是在程序运行中还会发生动态数组变量的再定义而改变占用内存空间的。
参考:http://baike.baidu.com/link?url=Z503RhGcB9RqKiR6BtzX6ISS2f7MQPLRkoijqYzbkAFe1bm6UEYaGAc5Q7z3CdJtjsyy-J8A9gwQXSg9uujQKQ3YdClNe6hzq4wOQHBwfUG
在计算机编程中声明一个变量并不一定占用内存空间。
计算机编程中声明的含义当一个计算机程序需要调用内存空间的时候,对内存发出的“占位”指令,我们称之为“声明”。
声明一个变量只是将变量名标识符的有关信息告诉编译器,使编译器“认识”该标识符,但是声明并不一定引起内存的分配!而定义一个变量意味着给变量分配内存空间,用于存放对应类型的数据,变量名就是对相应的内存单元的命名。
C++程序中,大多数情况下变量声明也就是变量定义,声明变量的同时也就完成了变量的定义,只有声明外部变量时例外。
VB程序,Dim 语句,声明变量并分配存储空间。
当然这些语句实际是在程序运行或调试时才真正起作用,也有一些是在程序运行中还会发生动态数组变量的再定义而改变占用内存空间的。
变量来源于数学,是计算机语言中能储存计算结果或能表示值抽象概念。变量可以通过变量名访问。
在指令式语言中,变量通常是可变的;但在纯函数式语言(如Haskell)中,变量可能是不可变(immutable)的。在一些语言中,变量可能被明确为是能表示可变状态、具有存储空间的抽象(如在Java和Visual Basic中);但另外一些语言可能使用其它概念(如C的对象)来指称这种抽象,而不严格地定义“变量”的准确外延。
运行程序的时候,执行到int i;语句时,系统才会给i分配空间
具体多少?跟编译器有关,比如VC++6.0分配4个字节,TurboC分配2个字节
只要你不定义多余变量,自然就不会浪费空间
#include "iostream.h"
void main()
{
int i=9;
cout<<sizeof(i)<<endl;
}
可以看到分配了4
如果你要到用时才分配,用指针
int *i;
用时
i=new int;
i=9;(你要的值)