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

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

2.变量的声明:用于向程序表明变量的类型和名字。程序中变量可以声明多次,但只能定义一次。

3.两者联系与区别:

(1)定义也是声明,因为当定义变量时我们也向程序表明了它的类型和名字;

(2)但声明不是定义,可以通过使用extern关键字声明变量而不定义它。不定义变量的声明包括对象名、对象类型和对象类型前的关键字extern;

例:

extern int i;//声明但不定义

int i;//声明也定义

extern声明不是定义,也不分配存储空间。事实上,它只是说明变量定义在程序的其他地方。

注意:如果声明有初始化式,那么它可被当作是定义,此时声明也是定义了,即使声明标记为extern,

例如:extern double pi = 3.1416;//声明也定义,此句话虽然使用了extern,但是这条语句还是定义了pi,分配并初始化了存储空间。

注意:只有当extern声明位于函数外部时,才可以含有初始化式。

注意:因为初始化的extern声明已经是定义了,而变量在程序中只能定义一次,所以对该变量随后的任何定义都是错误的:

extern double pi = 3.1416;//定义了

double pi;//重定义,不合法

注意:在C++语言中,变量必须仅能定义一次,而且在使用变量之前必须定义或声明变量。

4.为什么需要区分声明和定义:

C++程序通常由许多文件组成。为了让多个文件访问相同的变量,C++区分了声明和定义。任何在多个文件中使用的变量都需要既有定义又有声明。在这种情况下,在一个文件中定义了变量,在其他使用改变了的文件中则只能包含变量的声明(不能再包含定义,因为变量只能定义一次)。



时间: 2024-10-10 04:01:24

C++变量的声明和定义 终于搞明白了的相关文章

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

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

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

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

【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),因此定义是声明的一种. 声明一个类型是不分配存储空间的,但似乎叫“类型定义”听起来也不

变量的声明与定义

请看下边小程序: 1 int i; // 定义性声明(defining declaration)或定义(definition) 2 extern int j; // 引用性声明(referencing declaration) 3 int *k; // 引用性声明(referencing declaration) 很明显,上述的三个声明是代表了声明的两种情况: 1. 一种是需要建立存储空间的,称为定义性声明(defining declaration)或定义(definition).如int i在

【转】终于搞明白什么叫双卡双待双模双通手机

原文网址:http://blog.sina.com.cn/s/blog_5bdee3020101pvgy.html 市面上,经常充斥着,大量双卡双待手机,而许多消费者只是知道这种手机可以插入两个卡,直接打电话,而你真正的理解其中的含义吗? 其实除了双卡双待,市面上的手机旺旺还充斥着各式各样的双,这里我就先来给大家解释一下吧! 双卡:顾名思义,两张卡,广义上说能插入两张卡的手机都可以叫双卡手机.但是也有bug,有一些手机有两个sim卡插槽,却只能同时工作一张卡!这个其实本质上还是单卡啦!山寨手机长