gpt4 book ai didi

c++ - ANSI C 和 ANSI C++ 中的 const 修饰符

转载 作者:行者123 更新时间:2023-11-30 21:15:41 29 4
gpt4 key购买 nike

这是真的吗?

1.如果单独使用const修饰符,则默认为int。例如,

const size = 10;

表示

const int size =10; 

2.ANSI C 不需要 const 初始化器;如果没有给出,它会将 const 初始化为 0。例如,

const int i;

表示

const i = 0;

请给出答案。根据 ANSI 标准

最佳答案

  1. 这对于 C89/90 来说是正确的。对于 C99 或 C++ 来说并非如此。 “隐式 int”规则在 C99 中是非法的,并且在 C++ 中从未存在过。

    但是,

    const size 10;

    不是有效的 C 语法。 = 仍然是必需的。一个非常古老的预标准版本的 C(称为 CRM C)使用不带 = 的初始化语法,但该语言版本中甚至还没有 const

  2. 不正确。在 C 中,具有静态存储持续时间的对象默认为零初始化。例如,这意味着任何文件范围对象默认情况下都是零初始化的,无论它是否是const。默认情况下,局部变量不会被零初始化,无论它们是否为 const。换句话说,这个问题与const完全无关。

    C++ 实现了类似的规范。所有具有静态存储持续时间的对象在进行任何其他初始化之前都将被初始化为零。

关于c++ - ANSI C 和 ANSI C++ 中的 const 修饰符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11508466/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com