首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >c++14值初始化问题

c++14值初始化问题
EN

Stack Overflow用户
提问于 2015-04-21 10:08:04
回答 2查看 204关注 0票数 4

谁知道wy本地i_local值在本例http://ideone.com/Cqer9Z中为零初始化

代码语言:javascript
复制
#include <iostream>
using namespace std;

int main() {

    int i_local; // automatic storage duration, not static

    cout << "Value of i_local: " << i_local << endl; // (2-3) value is undetermined
}

它是可变的,自动存储时间,根据标准是应该有未定的值。

在我的本地计算机(c++11)中,它是未定的,但在ideone (c++14)中是零的。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2015-04-21 10:12:48

完整地说,标准说(强调后加):

当获得具有自动或动态存储持续时间的对象的存储时,该对象具有一个不定值,如果不对该对象执行初始化,则该对象保留一个不确定值,直到该值被替换(5.18)。.如果一个不确定的值是由一个计算产生的,则该行为是未定义的,除非在一些不相关的情况下.

你有不明确的行为。它可以打印0,它可以打印50,它可以打印胡言乱语,或者它可以擦除你的硬盘驱动器。

票数 7
EN

Stack Overflow用户

发布于 2015-04-21 10:12:36

零是int的值之一,因此未定值的int为零是完全合法的。

此外,UB甚至尝试读取该整数,因此您所看到的值从定义上来说是毫无意义的。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/29769115

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档