关于变量的初始化与赋值的问题

夜茶微微凉 2019-04-10 05:33:33
有大神讲下吗?
...全文
280 10 打赏 收藏 转发到动态 举报
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
wopksizhu 2019-04-22
  • 打赏
  • 举报
回复
引用 9 楼 夜茶微微凉的回复:
我用的是VS2015,C++ int main(){ int a; cout<<a;//结果是垃圾数据 return 0; } int a; int main(){ cout<<a;//输出0 return 0; } 结果是不一样,函数体内定义的内置类型不显示初始化,结果会是未初始化的
初始化就一定代表值是0吗? 垃圾数据那是随机值,那也是初始化,因为你没手动初始化值,程序自动给你一个随机值了
夜茶微微凉 2019-04-11
  • 打赏
  • 举报
回复
我用的是VS2015,C++ int main(){ int a; cout<<a;//结果是垃圾数据 return 0; } int a; int main(){ cout<<a;//输出0 return 0; } 结果是不一样,函数体内定义的内置类型不显示初始化,结果会是未初始化的
636f6c696e 2019-04-11
  • 打赏
  • 举报
回复
你自己加个打印就知道了,别自己不试就自己臆想好不好。 int a; printf("%d", a); a = 3; printf("%d", a);
引用 5 楼 夜茶微微凉 的回复:
[quote=引用 4 楼 636f6c696e的回复:]C语言不存在初始化后没有初始值的情况,如果你没有设置则系统会设置一个值。 因此第二个里面a=3;实际是赋值动作。
不是这样的,我写的是在函数体内的情形,此时是不会默认初始化int类型的[/quote]
qq_40162781 2019-04-10
  • 打赏
  • 举报
回复
switch中的问题是 switch() { case 1:break; case 2: } 1和2是在同一块作用域中 一旦在case 1中初始化了一个变量,但是却执行case 2的标签,case 2使用了ase 1的变量,但是执行case 2会略过case 1的初始化,造成使用未初始化的值 用户可能会这么写 int i=1; switch(i) { case 1: int j=4; case 2: i=j; } 如果能使用初始化用户可能会希望执行case 1并在case 2给i赋值,一旦执行case 2会产生令人糟糕的事情 int i=3; switch(i) { case 1: int j; case 3: j=1; printf("%d",j); } 这样就不会发生使用未定义的对象,因为用户必须在使用此对象之前定义
qq_40162781 2019-04-10
  • 打赏
  • 举报
回复
可以当成定义一个值 int a=1; 初始化并定义 ********************************** int a; a=1; 定义一个值 ********************************** int a=3; 初始化并定义 a=4; 赋值
夜茶微微凉 2019-04-10
  • 打赏
  • 举报
回复
引用 4 楼 636f6c696e的回复:
C语言不存在初始化后没有初始值的情况,如果你没有设置则系统会设置一个值。 因此第二个里面a=3;实际是赋值动作。
不是这样的,我写的是在函数体内的情形,此时是不会默认初始化int类型的
636f6c696e 2019-04-10
  • 打赏
  • 举报
回复
C语言不存在初始化后没有初始值的情况,如果你没有设置则系统会设置一个值。 因此第二个里面a=3;实际是赋值动作。
qybao 2019-04-10
  • 打赏
  • 举报
回复
问题2是变量的作用域问题
qybao 2019-04-10
  • 打赏
  • 举报
回复
太纠结于概念了吧,而且中文翻译意思本来就有点暧昧 int a时系统自动把a初始化为0
夜茶微微凉 2019-04-10
  • 打赏
  • 举报
回复
看了一下午,没看明白。

64,683

社区成员

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

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