![]() |
1
14
因此,上述仅允许以下条件:
该标准允许条件声明变量,但是,他们通过添加一个名为“条件”的新语法规则来声明变量,该规则可以是表达式或带有初始值设定项的声明器。结果是,仅仅因为你处于
|
![]() |
2
13
问题是,标准允许您 公告 括号内。您想要做的是将声明作为表达式的一部分,这是标准不允许您做的事情。 while()可以有两种语法之一:while(<declaration>)或while(<expression>)。声明使用“=”,看起来像表达式,但它是一个不同的语法实体。 当你写作时
,那太好了。“inti=1”是一个声明。然而,你想要的是
这是一种完全不同的动物。您希望在while()中包含一个表达式,其中表达式的一个术语是声明。现在,声明是一个语句,因此不能作为表达式的一部分。这就是为什么你需要做的不能做。
|
![]() |
3
11
这似乎不是顺从的行为。本标准第6.5.1.2部分规定:
因此,在您的示例中,ch应该在循环的范围内声明并正确工作(通过每次循环迭代重新创建)。观察到的行为的原因很可能是编译器没有正确地确定变量的作用域,然后多次声明它。 |
![]() |
4
2
这可能是因为while子句的内容在每个循环中都被求值,因此它会多次尝试并声明“ch”。 您给出的if、switch和for循环示例都将只定义一次“ch”。 |
![]() |
5
2
可以
do是将声明语句放在其他表达式中。例如,在表达式a+b+c中,不能将b替换为
那么在
|
![]() |
6
0
|
![]() |
rookie · 检查函数模板的所有参数包参数是否属于int 1 年前 |
![]() |
ivaigult · -W转换和隐式字符串到布尔类型转换 1 年前 |
![]() |
rainer · 后台插入程序的初始化 1 年前 |
![]() |
Community wiki · 以理智、安全和高效的方式复制文件 1 年前 |
|
Shefali Kanaujia · 对C中向量的向量进行排序++ 1 年前 |
|
Ma Joonyoung · 粗粒度和细粒度链表的时间比较 1 年前 |