1. 变量的声明:

  • 声明是用来告诉编译器变量的名称和类型,而不分配内存。
  • 变量的声明有两重含义:
    • 告诉编译器,这个名字已经匹配到一块内存上,下面的代码用到变量或者对象是在别的地方定义的。声明可以出现多次。
    • 告诉编译器,这个名字已经被预定了,别的地方再也不能用它来作为变量名或对象名。
  • 例如:

​​​​​​​        ​​​​​​​        

//上面代码中,语句 extern int var;表示 var 在别的文件中已经定义,提示编译器遇到此变量时在其它模块中寻找其定义。语句 extern int ble = 10;表示定义了变量 ble,这一点需要注意。

//注意:即使是 extern ,如果给变量赋值了,就是定义了。

2. 变量的定义:

变量的定义用于为变量分配存储空间,还可以为变量指定初始值。在一个程序中,变量有且仅有一个定义。

注意:不应该在头文件中定义变量,因为一个头文件可能会被一个程序的许多源文件所包含。

注意:全局变量或静态变量初始值为0,局部变量初始化为随机值。

在 C/C++ 中,变量的声明和定义区别并不大,定义和声明往往是同时发生,变量定义时,会根据变量类型分配空间,如下所示:

//上面代码中,变量名为 value,类型为 int ,分配 4 字节的内存(不同编译器会有异)。

3. 变量声明和定义的区别:

  • 通常变量的定义和声明是同时发生的,注意:extern 变量类型 变量名 仅是声明。
  • 变量的定义分配地址和存储空间,变量的声明不分配地址;
  • 一个变量可以在多个地方声明,但是只能在一个地方定义;
  • 很多时候一个变量只是声明不分配内存空间,直到具体使用时才初始化,分配内存空间,如外部变量;

十:变量的定义和声明的区别?相关推荐

  1. C++ 语言变量的定义、声明和初始化

    C++ 语言变量的定义.声明和初始化 1. 定义变量 每种变量都存储一种特定的数据,在定义了变量后,它可以存储的数据类型就是固定的.存储整数的变量,就不能存储小数. 1.1 命名变量 变量的名称可以是 ...

  2. 函数和变量的定义和声明

    函数和变量的定义和声明 一.函数的定义和声明 二.变量的定义和声明 一.函数的定义和声明 1.函数声明,无需实现该函数的功能.函数声明只是一个空壳,不会有特定的函数实现. 2.函数定义,必须实现该函数 ...

  3. 变量定义和声明的区别~~~概念上千万不要栽跟头!!!

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

  4. c语言变量申明和定义区别,C语言中变量定义与声明的区别

    该楼层疑似违规已被系统折叠 隐藏此楼查看此楼 在程序设计中,时时刻刻都用到变量的定义和变量的声明,可有些时候我们对这个概念不是很清楚,知道它是怎么用,但却不知是怎么一会事,下面我就简单的把他们的区别介 ...

  5. 变量定义和声明的区别(整理)

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

  6. C语言-定义和声明的区别

    3.定义与声明 定义:在内存中开辟空间(只能有一次),用来保存数据 声明:告知 (可以声明多次) 3.1.什么是变量 在内存中开辟特定大小的空间,用来保存数据 3.2.如何定义变量-怎么用 int x ...

  7. C++/C中定义与声明的区别

    在C++/C中,定义与声明是不一样的,主要区别在于是否分配了内存. 定义:编译器创建一个对象,为该对象分配一块内存,并为该内存起一个名字,这个名字就叫变量名. 例如: int a;//未初始化 int ...

  8. c语言变量声明举例,C语言变量的定义和声明

    今天犯了一个低级的错误,在头文件中定义了一个变量,而该头文件被多个源文件调用,导致该变量重复定义.然后我就把改变量改成static类型的了,这下编译倒是不出错了,就是结果跟我想象的不一样,在一个文件中 ...

  9. C语言——变量的定义与声明

    1.变量的定义(只有一次) (1) 什么是变量: 变量的本质就是要在内存的某个位置开辟空间,用来保存数据: (2)变量定义举例说明: 变量的定义相当于对一个喜欢的人表白只能有一次. (3)为什么变量都 ...

最新文章

  1. php 上传文件实例 注册账号
  2. 赶上直播电商、在线教育、小程序直播的风口 腾讯音视频解决方案助力
  3. 雷达多普勒频率计算公式_非接触式雷达在线测流系统是由什么组成的?
  4. 求助:国际化中资源文件不在classpath中的问题
  5. CodeForces - 1422D Returning Home(最短路+思维建图)
  6. 离线实时与api对应的关系+未来流行度
  7. Java多线程---线程通信(wait,notifyAll,生产者消费者经典范式,owner wait set,自定义显式锁BooleanLock)
  8. 下滑加载更多js_vue.js怎么实现滑动到底部加载更多数据效果?
  9. php 订单状态如何_如何编写程序实现图书管理系统当中的借书功能
  10. 进程控制(PCB,进程ID,进程状态,fork函数,文件共享)
  11. iOS Swift 2 2 监听耳机的 插拔的事件
  12. 熊逸《唐诗50讲》聚散篇 - 学习笔记与感想
  13. 【AD10】Altium Designer 10导入元件库图文教程
  14. dcs world f15c教学_你使用的DCS系统靠谱吗?!
  15. SAP接口编程之 JCo3.0 系列(03) : 表参数
  16. 蓝桥杯新增web应用开发科目—送给想要参赛的小伙伴们一份备赛指南
  17. vivox9怎么和计算机共享,vivo手机怎么和笔记本电脑共享文件和网络
  18. C语言数字图像处理---2.1 二值图像形态学算法
  19. 实现美团、饿了么购物车效果,并本地存储相关数据
  20. ros学习记录:Gazebo加载速度慢,长时间停在“Preparing your world”

热门文章

  1. app开发和web开发_了解2020年现代Web App开发的概念
  2. 【高等代数】第一章:多项式部分【2】
  3. 技术分析(三)均线理论
  4. spring aop(面向切面编程)
  5. Linux系统简介-虚拟机安装教程(保姆级)-Linux常用命令
  6. 深富策略:A股市场处于震荡颠簸期
  7. PCL安装教程 1.8.0+VS2013+cmake+QT5.5.1
  8. 【JTeam Champion NFT】2022年中NFT最大趋势是什么?
  9. 计算机专业任务书里主要任务是写什么,计算机专业任务书举例.doc
  10. 公众号接入通联支付大致流程