声明就是说明
定义就是实现
比如说:
1、对于变量
声明一个整形变量:int a;
声明一个整形变量并初始化:int a=0;
2、对于函数
void Func(); // 声明
void Func() // 定义
{
cout<<"1"<
声明的好处是函数的实现部分可以放在被调用处的后面
void Func();
void main()
{
Func();
}
void Func() // 定义
{
cout<<"1"<
但是,像下面的写法是错误的,没有声明之前是不能被调用的
void main()
{
Func(); // 没有被声明
}
void Func() // 定义
{
cout<<"1"<
修改方法就只能声明的同时定义
void Func() // 定义和声明同时进行,放在被调用处前面
{
cout<<"1"<
void main()
{
Func();
}
int fdsk; 声明
int fdsk=11;声明并初始化
如果按不严格的说法,可以这么说
在平时的说法中,定义一个变量是可初始化或者只声明
但是函数就严格点,声明归声明,定义归定义
A 属于定义,告诉编译器有这个产量。只有赋值以后叫声明,即给了该产量定义声明勒。所以是先声明后定义,关系就是必须先声明才可以定义。
定义和声明你看看这个:
http://www.cnblogs.com/GavinDai/archive/2011/10/24/2222735.html
int a; 是声明,分配了内存, int* a;也是声明,但是给指针a自身分配了内存,没有给指针指向的东西分配内存。
同样的,A a;也是声明,也分配了内存。
很明显分配内存不等于初始化,像指针a,给指针a分配了内在,但没有初始化。
对于内置类型变量来说,一般的全局变量(在函数外边定义的)会自动初始化,在函数内定义的不会自动初始化。