美文网首页C/C++
变量的定义和声明的区别

变量的定义和声明的区别

作者: 花伤情犹在 | 来源:发表于2020-10-12 08:24 被阅读0次

1、一种是需要建立存储空间的。例如:int a 在声明的时候就已经建立了存储空间。

2、另一种是不需要建立存储空间的。 例如:extern int a 其中变量a是在别的文件中定义的。

声明是向编译器介绍名字--标识符。它告诉编译器“这个函数或变量在某处可找到,它的模样象什么”。

而定义是说:“在这里建立变量”或“在这里建立函数”。它为名字分配存储空间。无论定义的是函数还是变量,编译器都要为它们在定义点分配存储空间。对于变量,编译器确定变量的大小,然后在内存中开辟空间来保存其数据,对于函数,编译器会生成代码,这些代码最终也要占用一定的内存。

总之就是:把建立空间的声明成为“定义”,把不需要建立存储空间的成为“声明”。

基本类型变量的声明和定义(初始化)是同时产生的;而对于对象来说,声明和定义是分开的。

例如:类A

如果A a;就是一个声明,告诉编译器a是A类的一个对象变量,但是不进行初始化;

如果以后a=new A();这就是初始化,分配了空间。

(我们声明的最终目的是为了提前使用,即在定义之前使用,如果不需要提前使用就没有单独声明的必要,变量是如此,函数也是如此,所以声明不会分配存储空间,只有定义时才会分配存储空间。)

用static来声明一个变量的作用有二:

(1)对于局部变量用static声明,则是为该变量分配的空间在整个程序的执行期内都始终存在。

(2)外部变量用static来声明,则该变量的作用只限于本文件模块。

补充:

什么是定义?什么是声明?它们之间的区别是什么?

所谓定义就是(编译器)创建一个对象,为这个对象分配一块内存,并给它取上一个名字,这个名字就是就是我们经常所说的变量名或对象名。

声明有2重含义:

(1) 告诉编译器,这个名字已经匹配到一块内存上,下面的代码用到变量或者对象是在别的地方定义的。声明可以出现多次。

(2) 告诉编译器,这个名字已经被预定了,别的地方再也不能用它来作为变量名或对象名。

定义和声明的最重要区别就是:

定义创建对象并为这个对象分配了内存,声明没有分配内存。

相关文章

  • es6

    1、let 和const(定义变量) (1)var 、let 、const的区别 a、作用域区别var 变量声明会...

  • 变量定义与声明的区别

    在C语言中变量有两种声明方式。一种叫做“定义性声明”,简称为“定义”,一种叫做“引用型声明”,简称为声明。 声明与...

  • C语言 变量声明和定义的区别

    变量的声明有两种情况: 1、一种是需要建立存储空间的。例如:int a 在声明的时候就已经建立了存储空间。 2、另...

  • Java基础-2 变量 封装

    成员变量与局部变量的区别:1. 定义的位置区别成员变量是声明方法之外,类之内的变量。局部变量时声明在方法之内 的变...

  • 变量的定义和声明的区别

    1、一种是需要建立存储空间的。例如:int a 在声明的时候就已经建立了存储空间。 2、另一种是不需要建立存储空间...

  • 声明

    声明 变量的声明 int i;是变量的定义 extern int i;是变量的声明 声明和定义 声明是不产生代码的...

  • Python ABC

    Python基础语法框架笔记 变量 变量声明定义 Python的变量的声明和定义很简单,或者说已经淡化了变量声明和...

  • es6总结一

    es6基础 let和const命令 let和const用于声明变量let跟var的区别 1、let定义过的变量不能...

  • Kotlin 变量,常量,注释

    定义变量,常量 声明普通变量Kotlin 中定义变量,常量跟Java中有很大区别, kotlin中必须使用var,...

  • 函数与作用域

    1. 函数声明和函数表达式有什么区别? 函数声明:可以定义命名的函数变量,而无需给变量赋值 函数表达式:将函数定义...

网友评论

    本文标题:变量的定义和声明的区别

    本文链接:https://www.haomeiwen.com/subject/bjqupktx.html