| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1710 人关注过本帖
标题:[求助]请问一下申明和定义变量有什么区别
只看楼主 加入收藏
W649897
Rank: 1
等 级:新手上路
帖 子:50
专家分:0
注 册:2006-11-26
收藏
 问题点数:0 回复次数:7 
[求助]请问一下申明和定义变量有什么区别
请问一下申明和定义变量有什么区别,看书的时候老是听到说申明,定义但他们的具体区别还是不很明白,请高手指点一下
搜索更多相关主题的帖子: 变量 申明和 定义 
2006-11-26 15:42
剑风曲
Rank: 1
等 级:新手上路
帖 子:69
专家分:0
注 册:2006-11-16
收藏
得分:0 
申明和定义两个概念很难区分.
对于变量,申明和定义是一样的,但是对于函数就不一样了~~
写在程序开头的叫申明.
写在后面具体说明函数是干什么的,就是定义.
比如
void k(int);//这里的一行就叫函数的申明,告诉系统,程序里面有k这个函数.
int main(){
int a;//这里的int a;既可以叫申明,也可以叫定义.
..........
..........
k(a);
........
}
void k(int x){
........}//这一段叫函数的定义,告诉系统,k这个函数是怎么做的.
2006-11-26 17:57
kelifei
Rank: 1
来 自:UESTC
等 级:新手上路
帖 子:89
专家分:0
注 册:2006-5-11
收藏
得分:0 
楼上的回答那是相当的好。

-DFAE -DESS -DDVD -DMTK  -DDVR -DDECODE -DMSTAR -DPMP我决定在论坛潜水3年又3年!
2006-11-26 20:42
王崇
Rank: 1
等 级:新手上路
帖 子:40
专家分:0
注 册:2006-11-23
收藏
得分:0 

2006-11-26 22:20
zkeey
Rank: 1
等 级:新手上路
帖 子:3
专家分:0
注 册:2006-10-24
收藏
得分:0 

hao

2006-11-28 19:53
W649897
Rank: 1
等 级:新手上路
帖 子:50
专家分:0
注 册:2006-11-26
收藏
得分:0 

是呀!函数的我弄清楚了,就是变量的老是觉得有点混

2006-11-28 20:55
litcatyx
Rank: 1
等 级:新手上路
威 望:1
帖 子:151
专家分:0
注 册:2006-10-27
收藏
得分:0 

声明是一种“把一个c++名称引入或者重新引入到你的程序”的构造。一个声明也可以是一个定义,这取决于他所引入的是哪些实体以及如何引入这些实体的:

1.名字空间和名字空间别名:名字空间的声明和名字空间的别名通常都是定义,尽管“定义”这个概念在此的含义比较特别,因为名字空间的成员列表在以后还是可以进行扩展的。
2.类、类模板、函数、函数模板、成员函数和成员函数模板:当且仅当这个声明包含一个与声明的名称相关联的花括号体时,该声明才是定义。这条规则同样也适用于:联合、运算符、成员运算符、静态成员函数、构造函数、析构函数和与上面相对应的模板版本的显示特化。
3.枚举:当且仅当该声明包含一对花括号内的枚举子时,该声明才是定义。
4.局部变量、非静态成员变量:这些实体总是可以被看作定义,尽管对他们而言,声明和定义的区别几乎不会产生任何影响。
5.全局变量:如果声明前面没有直接用关键字extern,或者它具有一个初始化器,那么,这个全局变量的声明就是该变量的定义;否则就不是一个定义。
6.静态成员变量:当且仅当这些实体出现在“包含他们的类或者类模板”的外部时,该实体的声明才是定义。
7.typedefs、using-declarations和using-directive:他们不能成为定义,尽管typedef可以组合类或者union的定义。
8.显示实例化指示符:我们把它当作定义来对待。


以上这一段摘自《C++ Templates中文版》 附录A“一处定义原则”第2节“声明和定义”
希望对大家有所帮助

2006-11-28 21:21
长江鱼
Rank: 1
等 级:新手上路
帖 子:4
专家分:0
注 册:2006-12-2
收藏
得分:0 
定义时编译器会为变量分配空间,而声明不分配空间!
具体的区别你可以看一下《C/C++深层探索》,里面讲得很详细!
2006-12-03 01:35
快速回复:[求助]请问一下申明和定义变量有什么区别
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.017286 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved