开发者社区> 问答> 正文

初始化变量就是为这个变量 分配内存,这句话对不?

Java程序中的引用变量并不需要进行所谓的初始化操作,需要进行的是引用变量所引用的对象。

展开
收起
杨冬芳 2016-05-27 15:11:56 2181 0
1 条回答
写回答
取消 提交回答
  • IT从业

    初始化变量就是为这个变量 分配内存,这句话对不?

    至少在 C++ 中是不对的。

    根据我的理解,在 C++ 中,一个变量要使用,一般需要以下三步:

    1.声明 declaration
    “声明”可以引入变量所使用的标识符,但不会分配内存空间。比如extern int i;,表示i这个标识符在之后的程序中是一个整数。

    2.定义 definition
    “定义”除了同声明一样引入变量所使用的标识符外,还会根据变量的类型分配相应的空间,但不会初始化(更准确的说,是会进行“默认初始化”,见下文)。比如int i;,就定义了一个整型变量i并为其分配了空间。

    3.初始化 initialization
    “初始化”是指在定义变量时,为其赋值。比如int i = 1;,就定义了一个整型变量i并为其分配了空间,而且把它的值设为 1。

    关于上文“默认初始化”的一点解释:

    “默认初始化”(default initialization)简单来说是这样一个过程,当使用T x;定义变量时,如果T是一个类,就调用这个类的默认构造函数来初始化x,如果T是一个内置类型(built-in type),则不进行初始化。更具体的可以参照 C++ 标准中的规定。

    2019-07-17 19:17:58
    赞同 展开评论 打赏
问答排行榜
最热
最新

相关电子书

更多
内存取证与IaaS云平台恶意行 为的安全监控 立即下载
云服务器ECS内存增强型实例re6全新发布 立即下载
低代码开发师(初级)实战教程 立即下载