zoukankan      html  css  js  c++  java
  • 声明、定义本质的区别:有无内存的分配


    1、声明:

        一般来说,身后名是加了 extern 关键字,比如:

    extern int a; // 只是声明

        这个过程,是声明,告诉编译器,这个变量已经在别的地方定义过了,这个只做基本的声明,这个过程并没有为其分配内存。

    2、定义:

    int x; // 声明 + 定义

        完成了定义,事实上,定义就包含了声明,编译器会为其分配内存。

    3、初始化:

    int x = 10;

        初始化,定义的都以后分配了内存了,更别说是初始化了。

    4、一步完成:

    extern int pi = 3.14;

        一般完成了声明,定义,初始化,更当然是分配了内存。

    5、本质的区别

        声明、定义、初始化、的本质的区别在于有无分配内存。显然,声明只是告诉了编译器存在这么一个变量或者函数的声明,只是告诉了编译存在这么一个函数而已,这个函数或者变量在其他的位置定义过了,所以在这个过程中没有为其再次分配内存;定义,则编译器会为其变量分配内存空间。初始化,则是完成了,为其分配的内存填指定的赋值而已。

    6、理解

        声明理解为:普通的声明,告诉编译器这个变量是在其他的地方创建的对象。

        定义理解为:一个特殊的声明,会为声明的变量进行分配内存。

  • 相关阅读:
    无题
    1.1tensorflow2.0 张量
    某某大肠_tidb_集群创建用户
    某某大肠_替换TiDB 3.0集群的tidb-server命令工具
    某某大肠_配置spark的thriftserver模块
    date_and_time
    SpringBoot整合Mybatis
    SpringBoot(3)Thymeleaf使用详解
    SpringBoot(2)实现CRUD
    SpringBoot(1)入门篇
  • 原文地址:https://www.cnblogs.com/qxj511/p/5081924.html
Copyright © 2011-2022 走看看