C++ ANSI C和ANSI C+中的常量修饰符+;
这是真的吗 1.如果我们单独使用常量修饰符,它默认为int。例如C++ ANSI C和ANSI C+中的常量修饰符+;,c++,c,ansi-c,C++,C,Ansi C,这是真的吗 1.如果我们单独使用常量修饰符,它默认为int。例如 const size = 10; 意味着 const int size =10; const i = 0; 2.ANSI C不需要初始值设定项来const;如果未给出任何值,则将常量初始化为0。比如说, const int i; 意味着 const int size =10; const i = 0; 请根据ANSI STD < P>根据标准(C99,我没有检查C++或较早的C版本),这两个都不是真的。 如果查看
const size = 10;
意味着
const int size =10;
const i = 0;
2.ANSI C不需要初始值设定项来const;如果未给出任何值,则将常量初始化为0。比如说,
const int i;
意味着
const int size =10;
const i = 0;
请根据ANSI STD < P>根据标准(C99,我没有检查C++或较早的C版本),这两个都不是真的。
- 如果它有算术类型,则初始化为(正或无符号)零李>
int
,但直到1999年才生效,当时他们将其定为非法。很久以前,MSVC 2003的C++中变量默认为“代码> int <代码>,但是在标准C++中,这是非法的,因为语言是标准化的。事实上,当我在MSVC的最新版本中键入您的代码时,会收到错误消息:
错误C4430:缺少类型说明符-假定为int。注意:C++不支持默认INT/P>
据我所知,在C或C++中,排除<代码>=/COD>从来都是不合法的。
<> P.>有些情况下,C和C++将初始化变量为零,但它们是沿着“代码> int int=int())行的一些情况;代码>,全局/静态为零初始化。在代码中,(如果它们处于函数中),C和C++都不会初始化这些变量。
const size 10;
不是有效的C语法。仍然需要=
。一个非常古老的标准前版本的C(称为CRM C)使用了没有=
的初始化语法,但该语言版本甚至还没有常量
const
。默认情况下,局部变量不是零初始化的,无论它们是否为常量。换句话说,这个问题与const
完全无关
C++实现了类似的规范。所有具有静态存储持续时间的对象在进行任何其他初始化之前都是零初始化的你在参加考试还是什么?在
常量大小10
中=
发生了什么事?您的问题似乎是关于缺少的int
。你为什么删除<代码> = />代码?在C++中,这个代码也不编译。