第一部分:变量的声明和定义
变量的声明:声明变量的类型和名字,但不分配存储空间。定义也是声明(这是许多人搞不清楚的地方)。
变量的定义:指明变量的类型和名字,为变量分配存储空间。另外变量的初始化,是指在变量的定义出给出值。
一般的情况下我们常常这样叙述,把不需要分配存储空间的称之为"声明",而把分配存储空间称之为"定义"。
注意:在C++语言中,变量有且只能有一次定义,但是可以声明多次。使用变量前必须定义或声明。
那既然变量的定义就是声明,为啥还要再多出来个变量的声明这个概念,直接就用变量的定义不是就可以了?
其实不然,C++中有个关键字是用来声明变量的,它是extern。它声明一个变量却不定义它,即不再给它一个存储空间。
例如:int i;//定义也可以说是声明
extern int i;//这就是单纯的声明
假设我们在文件1.cpp中定义了一个全局变量bufsize,文件1.cpp中当然可以访问它,如果我想在另外一个文件2.cpp中访问这个全局变量,这时候需要在文件2.cpp中声明这个变量。
//1.cpp
int bufsize;
//2.cpp
extern int bufsize;
这说的是非const的全局变量,如果是const的全局变量,如果想要被其他文件访问,需要在定义的时候,加上extern关键字,表示它可以在其他文件被声明使用的,即可以被整个程序(一个程序可能包括多个源文件)访问,否则的话,这个变量只能在它被定义的文件里面被访问,其他文件不能访问。
//1.cpp
extern const int bufsize=10;
//2.cpp
extern const int bufsize;
这时候你也许会问,为什么非const变量定义的时候为什么没有extern?
答:非const变量默认为extern。而const变量如果想要在其他文件里被访问,必须显示的指定它为extern。
第二部分:方法的声明和定义
//方法的声明
void get(char *s);
//方法的定义
void get(char *s)
{
...
return;
}
最后指出:
定义:DEFINE
声明,有时也作说明:DECLARE
分享到:
相关推荐
C_语言静态变量和静态函数,可以让您对C语言静态变量和静态函数有更清晰的认识
宏定义、结构体定义、函数声明以及全局变量定义放到一个head.h头文件中 函数的定义放到head.cpp中 main函数放到main.cpp中 然而却报错了,提示xxx变量在*.obj文件中已定义 问题出现的原因 为什么会出现这种...
浅谈C语言中指针变量的定义与应用.pdf
浅谈C语言中指针变量的定义与应用 (1)
(1) 学会和掌握结构体类型的定义方法和结构体变量的定义及初始化。 (2) 学会和掌握结构体数组的定义、初始化以及使用。 (3) 学会和掌握结构体类型指针的定义和使用。 过程与方法: (1) 培养学生对新事物的...
头文件中一般放一些重复使用的代码,例如函数声明,变量声明,常数定义,宏的定义等等。当使用#i nclude语句将头文件引用时,相当于将头文件中所有内容,复制到#i nclude处。为了避免因为重复引用而导致的编译错误...
简单的变量定义,最简单,容易理解,没有更简单的了
51单片机C语言变量定义.pdf
也谈二级C语言之变量的定义与特点.pdf
在C语言中,变量是用来存储数据值的内存位置。在使用变量之前,需要先声明变量的类型和名称...在C语言中,变量的作用域可以是全局的或局部的,全局变量在整个程序中都可以访问,而局部变量只能在定义它的代码块中访问。
C语言的变量的定义是什么含义呢? 在学习C语言过程中认识变量和合理得运用变量得类型 可以使程序更加有效率 那么我们来认识一下C语言中的变量 int a; //一个整数型变量 double b;//一个双精度浮点型变量 char c...
c语言匈牙利试变量命名法则 匈牙利试变量命名法则
C语言变量名命名规则
C++中,变量定义可以在函数中的任意位置,比如函数中任意位置出现的For循环中: for(int i = 0; i< len; i++) { /*do something;*/ } 变量i可以在使用到的地方才给定义; 然而在C语言中,变量的...
枚举类型定义与变量声明定义的不同方法,使用vc++ 6.0编写
C语言在头文件中定义const变量详解 在头文件中定义const不会有多变量的警告或错误,如果该头文件被大量包含会造成rom空间的浪费。 通过查看*.i文件的展开呢,可以发现每个.i文件都会有相应的变量展开。 查看*.map...
C语言面试题大汇总之华为面试题:1、局部变量能否和全局变量重名;2、如何引用一个已经定义过的全局...3、全局变量可不可以定义在可被多个.C文件包含的头文件中 为什么;4、语句for( ;1 ;)有什么问题 它是什么意思……
(16) 若变量已正确定义并赋值,下面符合C语言语法的表达式是( )