c++中定义和声明有什么区别?

如题... 如题 展开
 我来答
m1036779838
2011-11-02 · TA获得超过243个赞
知道小有建树答主
回答量:338
采纳率:0%
帮助的人:198万
展开全部
定义给变量分配内存,声明不分配
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
盛大2012
2016-09-02
知道答主
回答量:6
采纳率:0%
帮助的人:7.5万
展开全部
声明是引入标识符和标识符的类型(类型可以是整形,函数,浮点型等)。声明也可理解为是让编译器知道有这么个标识符,方便以后引用。如下面这些声明语句:

extern int i;
extern double d;
extern int foo(int, int);
double f(int, double); // 函数声明时extern可以省略。

定义实际是实例代(或实现)标识符。可为标识符分配存储空间,还可为标识符指定初始值。如下是定义的语句:

int i;
double d = 3.14;
int foo(int lhs, int rhs) {return lhs*rhs;}
double f(int i, double d) {return i+d;}

定义可以代替声明,因为在定义的时候我们也指定了标识符和类型。但所有标识符只能有一次定义,而声明可以有多次,如下声明在C和C++中都是合法的:
extern int i;
extern int i; //多次声明了变量i
extern double d;
extern double d;//多次声明了变量d
double f(int, double);
double f(int, double);//多次声明了函数f

若同一个标识符多次定义,则编译器不知道哪个定义才是标识符的实现,编译会通不过。而多次声明不会,它只是告诉编译器有这么个标识。区分声明和定义相当重要,一个叫秒秒学的教程网站上的多个课程如《Java基础课程》和《C语言基础》中都有说明这个问题,推荐你去看看,希望对你有帮助。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式