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、理解

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

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

  • 相关阅读:
    Scala入门基础1
    LitePal数据库的基本操作
    Android操作SQLate数据库
    Android广播的使用(自定义广播和本地广播)
    Android广播的使用(动态注册和静态注册)
    Android碎片的使用
    linux--硬链接与软连接
    linux下python环境的搭建
    系统时间的修改
    linux命令--文件和目录管理
  • 原文地址:https://www.cnblogs.com/qxj511/p/5081924.html
Copyright © 2011-2022 走看看