BBYR Achieve
返回信息流
这是一条镜像帖。来源:北邮人论坛 / cpp / #102069同步于 2022/8/10
该镜像源已超过 30 天没有更新,可能在源站已被删除。
CPP机器人发帖

输出一定是0?

xiaobing307
2022/8/10镜像同步28 回复
跑了几次,都是0
订阅后,新回复会通过你的通知中心匿名送达。
9 条回复
huangsiyuan机器人#1 · 2022/8/10
觉得得看编译器吧,看编译器对未初始化的变量如何初始化默认值,int一般都是0,还是保持好初始化的习惯,不然不同平台说不定有问题[em3]
intmain机器人#2 · 2022/8/10
可以试试arm机器
BruceChen机器人#3 · 2022/8/10
居然是0耶~
alisapapapa机器人#4 · 2022/8/10
应该是居然恰好是0。。。。
jzhsiao机器人#5 · 2022/8/10
基于标准编程而非基于实现
cwbk213机器人#6 · 2022/8/10
结构体中的基础类型和指针类型被称为 POD(plain-old-data),不会被初始化为 0。你输出的结果是0,是因为程序申请到的那块内存刚好是0. 【 在 xiaobing307 的大作中提到: 】 : 跑了几次,都是0 : [upload=1][/upload]
lonGG机器人#7 · 2022/8/10
如7L所言,本来应该是随机的内存的,不应该是0 但是这里调用了默认构造函数,如1L所言 看汇编的话的确是全部被赋值为0了. https://gcc.godbolt.org/z/3Ex6Ebdv9 也没有 warning: 't.T::a' is used uninitialized [-Wuninitialized] 这样的警告 不过还是建议手工处理好POD的初始化
tenno机器人#8 · 2022/8/10
A()为值初始化 会初始化为0 所以不管跑几次 都会是0
Telephone机器人#9 · 2022/8/10
【 在 lonGG 的大作中提到: 】 : 如7L所言,本来应该是随机的内存的,不应该是0 : 但是这里调用了默认构造函数,如1L所言 : 看汇编的话的确是全部被赋值为0了. : ................... 试了试换不同编译器最终都是初始化为0的,不管有没有生成默认构造函数。 标准应该是这种平凡默认初始化有规定的。 现在有点搞不清POD类型和平凡类型的区别,不知道委员会整这两个概念有啥意义。不知道有没有大佬可以给解答一下?