C++ Premier的一句话!!

Try6198 2010-10-29 09:47:05
在C++ premier中有一句话
初始化阶段中,内置或者复合类型的成员的初始化依赖于对象的作用域,局部作用域中成员不初始化,而全局作用域中初始化为0
这句话是什么意思??
...全文
302 23 打赏 收藏 转发到动态 举报
写回复
用AI写文章
23 条回复
切换为时间正序
请发表友善的回复…
发表回复
  • 打赏
  • 举报
回复
二楼已给出答案
visayafan 2010-10-30
  • 打赏
  • 举报
回复
全局变量是在静态存储区
局部变量是在栈里 栈里的数据都是不确定的
ForestDB 2010-10-30
  • 打赏
  • 举报
回复
其实最根本的是,全局变量放在数据段,而这个段的内容在装载程序的时候是全部清零的,所以就有了全局变量自动初始化为零这以说法;而局部变量是在栈上的,没有初始化这一动作。

抛开底层的细节,良好的编程习惯是,对任何变量都做有意义的初始化。
Honyun100 2010-10-30
  • 打赏
  • 举报
回复
我是来打酱油的
AI应用技术 2010-10-30
  • 打赏
  • 举报
回复
有初始化,无初始化
gujiayue 2010-10-30
  • 打赏
  • 举报
回复
有这个区别的,作用域不同,初始化的规则就不同,好好看看这本书吧,这本书讲到的很多细节是国内有关教材里根本都没有提及到的
chengjjjj 2010-10-30
  • 打赏
  • 举报
回复
受益匪浅!
ddc 2010-10-30
  • 打赏
  • 举报
回复
全局变量其实并没有初始化,装载器不会对全局变量调用(xor eax,eax),而是在编译阶段会把那段内存写成0,打开你的PE文件,其中某个0就是你那个全局变量。装载时memcpy那段内存到相应地址,看起来就像清0一样。
lasvegas_xiang 2010-10-30
  • 打赏
  • 举报
回复
全局变量是在静态存储区
局部变量是在栈里 栈里的数据都是不确定的
foolfoolpig 2010-10-30
  • 打赏
  • 举报
回复
你不懂作用域,给你说说也是白说
coder_xia 2010-10-30
  • 打赏
  • 举报
回复
2楼已有答案
harderman 2010-10-30
  • 打赏
  • 举报
回复
意思基本就是在全局区域未初始化的变量,当在程序中的其他局部作用域使用该变量的时候,如果不进行初始化的时候,其默认的初始值为0; 如果变量是在局部变量定义的,在没有进行初始化的情况下对其进行的时候,程序会出现未定义错误
Terenceliqiang 2010-10-29
  • 打赏
  • 举报
回复
C++ primer好书啊。。。今晚刚把 泛型算法 看完。。。
某某9 2010-10-29
  • 打赏
  • 举报
回复
如果你在局部申请了变量,编译器不会给你自动初始化他们。
如果你在全局里申请了,编译器帮你自动初始化他们为0。
jikeyuan1 2010-10-29
  • 打赏
  • 举报
回复
多看看书吧 先掌握一下基础知识 c++primer 我觉得对你可能深了一点 推荐 essential c++
如影随从 2010-10-29
  • 打赏
  • 举报
回复
内置类型 就是c++自带的类型 Int char 这些基本类型
复合类型 就是对象

他意思是告诉你。
如果你在局部申请了变量,编译器不会给你自动初始化他们。
如果你在全局里申请了,编译器帮你自动初始化他们为0。

就是告诉你什么时候自动初始化,什么时候不自动初始化。
dingshaofengbinbin 2010-10-29
  • 打赏
  • 举报
回复
已有答案,,,,
再见理想~ 2010-10-29
  • 打赏
  • 举报
回复
a初始化为0,c不被初始化!
积木 2010-10-29
  • 打赏
  • 举报
回复
还有这句话了?不明白啊。。。难道全局变量自动初始化,局部变量就不初始化?有这个语言细节吗?
不过按照一般编码要求,各种变量都要手动初始化,省得麻烦。

内置数据类型成员就是 int char一类的。
复合类型的话就是结构体,联合体,类一类的类型。
GoonYangXiaofang 2010-10-29
  • 打赏
  • 举报
回复

#include <iostream>
using namespace std;

int n1;

int main()
{
int n2;
cout << n1 << endl; // 全局变量 n1 以初始化为 0
cout << n2 << endl; // 局部变量 n2 未被初始化
return 0;
}
加载更多回复(2)

64,439

社区成员

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

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