在C语言中,什么是声明、定义、初始化?有什么区别
4个回答
2012-07-17
展开全部
声明和定义的意思差不多。比如:int a;
初始化就是给某个对象赋初值,比如:a=10;
初始化就是给某个对象赋初值,比如:a=10;
追问
什么是声明、定义、初始化?这是三个不同的概念,我想很好的区分下他们,最好举例说明下,谢谢
追答
#include
main() {
int a; //声明或定义int(整型)变量a
a=10; //初始化a,给a赋值10
}
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
函数和变量都有声明和定义,
对变量而言:在同一个文件中声明和定义没区别;
在多个文件中才有区别(比如说在a.c文件中先定义了一个int num;我在b.c中要访问这个num,这时我们需要在b.c这个文件中声明一下);
变量定义:(1)分配空间
(2)只能定义一次
变量声明:(1)不分配空间
(2)可多次声明
注意:定义是一种特殊的声明.
变量初始化:在定义的同时赋值;(注意,定义之后,再去赋值不叫初始化)
对变量而言:在同一个文件中声明和定义没区别;
在多个文件中才有区别(比如说在a.c文件中先定义了一个int num;我在b.c中要访问这个num,这时我们需要在b.c这个文件中声明一下);
变量定义:(1)分配空间
(2)只能定义一次
变量声明:(1)不分配空间
(2)可多次声明
注意:定义是一种特殊的声明.
变量初始化:在定义的同时赋值;(注意,定义之后,再去赋值不叫初始化)
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
声明不分配地址空间,定义分配,直接代码举例:
#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.
#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.
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询