在C语言中,什么是声明、定义、初始化?有什么区别

什么是声明、定义、初始化?这是三个不同的概念,我想很好的区分下他们,最好举例说明下,谢谢

声明和定义差不多,比如,声明一个变量,和定义一个变量,初始化就是将该变量赋初始值,比如int a = 0; 声明了一个int 类型的变量,变量名是a,初始值为0,给变量初始化很重要,因为该变量所在的内存可以已经有一个值了,不初始化,改变量可能是个垃圾值,对后面的计算有影响
温馨提示:答案为网友推荐,仅供参考
第1个回答  2012-07-17
声明和定义的意思差不多。比如:int a;
初始化就是给某个对象赋初值,比如:a=10;追问

什么是声明、定义、初始化?这是三个不同的概念,我想很好的区分下他们,最好举例说明下,谢谢

追答

#include
main() {
int a; //声明或定义int(整型)变量a
a=10; //初始化a,给a赋值10
}

第2个回答  2012-07-18
函数和变量都有声明和定义,
对变量而言:在同一个文件中声明和定义没区别;
在多个文件中才有区别(比如说在a.c文件中先定义了一个int num;我在b.c中要访问这个num,这时我们需要在b.c这个文件中声明一下);

变量定义:(1)分配空间
(2)只能定义一次
变量声明:(1)不分配空间
(2)可多次声明
注意:定义是一种特殊的声明.

变量初始化:在定义的同时赋值;(注意,定义之后,再去赋值不叫初始化)
第3个回答  推荐于2017-09-04
声明不分配地址空间,定义分配,直接代码举例:
#include <stdio.h>
extern int i ;
int main()
{
printf(" %d \n", i);
return 0;
}
编译
gcc -o example example.c 是无法通过的。
通过显式使用关键字extern, 表明是让编译器从其他地方查找变量i的定义。
而定义就是直接写:
int i; //OK ,没问题。
通常而言,定义也包括了声明,但声明不包括定义。
初始化,如果这个词用在这里,这个就简单了,就是赋个初值呗。
int i = 10; //初始化i的值为10.本回答被提问者采纳
相似回答