定义和声明的区别
●定义:
定义就是告诉编译器创建一个对象,为这个对象分配一块内存,并取上一个名字(变量名)。
一个变量或对象在一定的区域内(比如函数内,全局等)只能被定义一次,若定义多次则会报错。
如下代码:
Main()
{
inti;
inti=0; //重定义!
}
⊙int i=0与 i=0的区别:
int i=0;//定义,赋值。同一个变量的定义,只能出现一次。
i=0;//赋值,可以多次出现。
●声明:
声明有两重含义:
1.告诉编译器,这个名字已经被定义了(在别的地方定义了:在此声明之后用到的该变量,是在别的地方定义)。
如下代码:
extern int i; //告诉编译器,inti,已经在外部文件被定义了。这里并不会新生成一个整型。
2.告诉编译器,这个变量名,我已经占用了。如函数的形参名,就是告诉编译器,在该函数内部,不能再取与之重合的变量名。
如下代码:
void func(int a,int b)
{
int a;//报错,重定义!
…
}