问题描述:
请教C++中对象或者变量的声明与定义有何不同?
在程序的大部分地方我感觉变量的声明语句就是定义语句,虽然知道变量的声明只是告诉编译系统,并不马上分配存储空间,但很多时候仍旧疑惑声明和定义的区别,
对函数的声明和定义,可以很容易区分,但是变量或者对象的声明和定义怎么区分:如
f1.cpp文件:
int a=2;
int main()
{ int b,c=0;
b=c;
f();
return 0;
}
.
f2.cpp文件:
extern int a;
void f()
{ int dd;
dd=8;
}
在上述程序中,两个文件中的全局变量a,其中f1.cpp中的a在声明的同时并定义同时被初始化为2,但f2.cpp中的a只是一个声明,并没有定义(分配存储空间),在这里声明和定义区分的很明显,但f2.cpp中的dd变量,应该是声明的同时也被定义了,好象声明和定义区分的不明显.请教是不是对于auto类型的变量是不是声明和定义都在一起啊?
在程序的大部分地方我感觉变量的声明语句就是定义语句,虽然知道变量的声明只是告诉编译系统,并不马上分配存储空间,但很多时候仍旧疑惑声明和定义的区别,
对函数的声明和定义,可以很容易区分,但是变量或者对象的声明和定义怎么区分:如
f1.cpp文件:
int a=2;
int main()
{ int b,c=0;
b=c;
f();
return 0;
}
.
f2.cpp文件:
extern int a;
void f()
{ int dd;
dd=8;
}
在上述程序中,两个文件中的全局变量a,其中f1.cpp中的a在声明的同时并定义同时被初始化为2,但f2.cpp中的a只是一个声明,并没有定义(分配存储空间),在这里声明和定义区分的很明显,但f2.cpp中的dd变量,应该是声明的同时也被定义了,好象声明和定义区分的不明显.请教是不是对于auto类型的变量是不是声明和定义都在一起啊?
问题解答:
我来补答展开全文阅读