变量的声明与定义

  请看下边小程序:

1 int i;            // 定义性声明(defining declaration)或定义(definition)
2 extern int j;     // 引用性声明(referencing declaration)
3 int *k;           // 引用性声明(referencing declaration)

  很明显,上述的三个声明是代表了声明的两种情况:

  1. 一种是需要建立存储空间的,称为定义性声明(defining declaration)或定义(definition)。如int i在声明的时候就已经建立了存储空间。所以当我们令i = 1实际是将1写入i所代表的内存区域。

  2. 另一种是不需要建立存储空间的,称为引用性声明(referencing declaration)。如extern int j、int *k都没有建立存储空间。

  从本质上来看,声明不需要分配内存,定义需要分配内存。

时间: 2024-11-03 05:42:04

变量的声明与定义的相关文章

2、变量的声明与定义&内部函数和外部函数

[3]变量的声明与定义 对于函数.声明部分是对有关标识符(变量.函数.结构体)的属性进行声明:函数的声明是函数的原型,而函数的定义是对函数功能的定义.对被调函数的声明是放在主调函数的声明部分,而函数的定义显然不在声明部分的范围内,是独立模块! 对于变量.在声明部分出现的变量有两种情况:需要建立存储空间的(int a;),不需要简历存储空间的(extern a;)前者称定义性声明:后者称引用性声明: [4]内部函数和外部函数 有的函数只能被本文件中的其他函数调用,不能被其他文件中的函数调用:有的只

C++ 变量的声明与定义的区别

变量声明和定义的区别 我们在程序设计中,时时刻刻都用到变量的定义和变量的声明,可有些时候我们对这个概念不是很清楚,知道它是怎么用,但却不知是怎么一会事,下面我就简单的把他们的区别介绍如下:(望我的指点对你受益) 变量的声明有两种情况: 1.一种是需要建立存储空间的.例如:int a 在声明的时候就已经建立了存储空间. 2.另一种是不需要建立存储空间的. 例如:extern int a 其中变量a是在别的文件中定义的. 前者是“定义性声明(defining declaration)”或者称为“定义

C++变量的声明和定义 终于搞明白了

1.变量的定义:变量的定义用于为变量分配存储空间,还可以为变量指定初始值.在一个程序中,变量有且仅有一个定义. 2.变量的声明:用于向程序表明变量的类型和名字.程序中变量可以声明多次,但只能定义一次. 3.两者联系与区别: (1)定义也是声明,因为当定义变量时我们也向程序表明了它的类型和名字: (2)但声明不是定义,可以通过使用extern关键字声明变量而不定义它.不定义变量的声明包括对象名.对象类型和对象类型前的关键字extern: 例: extern int i://声明但不定义 int i

【C++】C++中变量的声明与定义的区别

声明(declaration):意味着告诉编译器关于变量名称.变量类型.变量大小.函数名称.结构名称.大小等等信息,并且在声明阶段不会给变量分配任何的内存. 定义(definition):定义就是在变量声明后,给它分配上内存.可以看成“定义 = 声明 + 内存分配”. 例如: #include <iostream> using namespace std; int addtion(int a,int b);//声明 struct product{unsigned int weight;doub

Java变量常量声明和定义

一.常量和变量 1.常量变量定义 在程序中存在大量的数据来代表程序的状态,其中有些数据在程序的运行过程中值会发生改变,有些数据在程序运行过程中值不能发生改变,这些数据在程序中分别被叫做变量和常量. 2.变量举例: 在水果分类中,需要有一个水果篮来存放不同的水果,那在运行的过程中,这个水果篮的值会发生变化. 3.常量举例 代表常数,便于程序的修改(例如:圆周率的值)增强程序的可读性(例如:常量UP.DWON.LEFT和RIGHT分别代表上下左右,其数值分别是1.2.3和4).在实际的程序中,可以根

c++(3)----变量的声明和定义

分离式编译(separate compilation): 允许将程序分割为若干个文件,每个文件可独立编译. 声明:使得名字为程序所知. 定义:负责创建与名字关联的实体. 变量只能被定义一次,但可以被声明多次. 如果要在多个文件中使用同一个变量,就必须将声明和定义分离.此时,变量的定义必须出现在且只能出现在一个文件中,而其他用到该变量的文件必须对其进行声明. extern int i ; // 声明i 而非定义i int j ; // 声明并定义 int c=3; // 声明.定义.初始化 ext

C:变量的声明与定义

声明变量不需要建立存储空间,如:extern int a; 定义变量需要建立存储空间,如:int b; #include <stdio.h> int main() { //extern 关键字只做声明,不能做任何定义,后面还会学习,这里先了解 //声明一个变量a,a在这里没有建立存储空间 extern int a; a = 10; //err, 没有空间,就不可以赋值 int b = 10; //定义一个变量b,b的类型为int,b赋值为10 return 0; } 从广义的角度来讲声明中包含

变量以及声明和定义

变量(Variable)是编程语言最重要的概念之一,变量是计算机存储器中的一块命名的空间,可以在里面存储一个值(Value),存储的值是可以随时变的,比如这次存个字符 'a' 下次存个字符 'b' ,正因为变量的值可以随时变所以才叫变量. C语言中的声明(Declaration)有变量声明.函数声明和类型声明三种.如果一个变量或函数的 声明要求编译器为它分配存储空间,那么也可以称为定义(Definition),因此定义是声明的一种. 声明一个类型是不分配存储空间的,但似乎叫“类型定义”听起来也不

C++头文件保护符和变量的声明定义

1.#ifndef #define #endif头文件保护符 在编译的过程中,每一个.cpp文件被看成一个单独的文件来编译成单独的编译单元,#ifndef 保证类的头文件在同一个.cpp文件中被多次引用后不会出现重定义问题. 注意:只是防止在同一个.cpp文件中被多次引用. 例子: // file1.h class file1 { }; // file2.h #include "file1.h" class file2 { }; // file3.h #include "fi