问:声明和定义的区别

wangsiyuanoo 2008-07-03 02:09:14
对于声明和定义,我还是有点糊涂
我以前就认为,没有初始化的变量就是声明,只有被初始化了的才是定义。
可今天看到的内容却说:int ia;是一个定义。
我知道
定义包括声明,可为什么不说int ia;是一个声明呢?
声明和定义的区别除了“声明可以多次,而定义只能一次”外,还有什么区别呢????
...全文
244 28 打赏 收藏 转发到动态 举报
写回复
用AI写文章
28 条回复
切换为时间正序
请发表友善的回复…
发表回复
TruthS 2008-07-07
  • 打赏
  • 举报
回复
声明只是说明这个东西存在,并没有分配内存,而定义是要分配内存的
wangboqun99 2008-07-07
  • 打赏
  • 举报
回复
UP
littlebad_boy 2008-07-06
  • 打赏
  • 举报
回复
mark
two_ears 2008-07-06
  • 打赏
  • 举报
回复
“没有初始化的变量就是声明,只有被初始化了的才是定义”
这句话对于extern是对的
extern int c=0;是定义
extern int c;是声明(一般写在包含文件里)
hagangqiou 2008-07-06
  • 打赏
  • 举报
回复
可以试着这样理解:
定义是第一次"声明";声明依赖于定义.
对于函数,定义给出严格的内容.而声明给出函数的原型如:函数名\返回值\参数类型等.也就是说声明是定义的描述.
定义具有唯一性,函数不能被定义多次;而声明就可以.需要用到的地方都应该声明.
自定义函数如果没有定义,那么就不能被调用.
头文件其实也起到声明的作用,对于没有给出头文件的外函数和变量,调用就会报错,充分说明了这一点.
bhzdw 2008-07-05
  • 打赏
  • 举报
回复
分配空间就算定义了
Otcthirteen 2008-07-05
  • 打赏
  • 举报
回复
声明变量不分配内存,而定义则分配了内存。
waterxx01 2008-07-05
  • 打赏
  • 举报
回复
[Quote=引用 7 楼 k2eats 的回复:]
主要是 定义意味着分配了内存空间, 声明没有
[/Quote]
zhangjundriver 2008-07-05
  • 打赏
  • 举报
回复
这两个概念不是很清楚啊,学习了,多谢
帅得不敢出门 2008-07-05
  • 打赏
  • 举报
回复
声明不对其编址
定义对其编址
annvily 2008-07-05
  • 打赏
  • 举报
回复
定义算一个声明
而声明不一定是定义

同一范围内
声明可以很多
但定义只能有一个
EddyCoffee 2008-07-05
  • 打赏
  • 举报
回复
学习了
macfan 2008-07-04
  • 打赏
  • 举报
回复
[Quote=引用楼主 wangsiyuanoo 的帖子:]
可今天看到的内容却说:int ia;是一个定义。
我知道
定义包括声明,可为什么不说int ia;是一个声明呢?

[/Quote]
在int ia;了以后系统已经为变量分配空间了,而声明只是告诉编译器代码中的某些函数变量是干什么用的,遇到了不要意外的报错.
windsting 2008-07-04
  • 打赏
  • 举报
回复
简单地说,就是:
定义分配了空间,声明不会分配空间。
jinwei1984 2008-07-03
  • 打赏
  • 举报
回复
[Quote=引用 7 楼 k2eats 的回复:]
主要是 定义意味着分配了内存空间, 声明没有
[/Quote]
XiaoG602 2008-07-03
  • 打赏
  • 举报
回复
比较通俗一点的说法是:声明是告诉编译器有这个东西,定义是告诉编译器这是什么东西。
Gob00st 2008-07-03
  • 打赏
  • 举报
回复
答案是这个
[Quote=引用 7 楼 k2eats 的回复:]
主要是 定义意味着分配了内存空间, 声明没有
[/Quote]
mymtom 2008-07-03
  • 打赏
  • 举报
回复
[Quote=引用 7 楼 k2eats 的回复:]
主要是 定义意味着分配了内存空间, 声明没有
[/Quote]
wangdeqie 2008-07-03
  • 打赏
  • 举报
回复
学习下
zsxcn 2008-07-03
  • 打赏
  • 举报
回复
mark
加载更多回复(8)

65,203

社区成员

发帖
与我相关
我的任务
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++ 技术论坛(原bbs)
社区管理员
  • C++ 语言社区
  • encoderlee
  • paschen
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
  1. 请不要发布与C++技术无关的贴子
  2. 请不要发布与技术无关的招聘、广告的帖子
  3. 请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下

试试用AI创作助手写篇文章吧