![]() |
1
5
写的代码应该有效。第一次呼叫
呼唤
从 standard :
还有:
也就是说,也许这不是
打算
由代码的作者。如果变量具有相同的名称,那么目的可能是只拥有该变量的一个实例,并且
|
![]() |
2
3
除非
|
![]() |
3
2
与全局变量同名的局部变量隐藏该块中的全局变量。但是,全局范围运算符(::)可以用来告诉编译器您指的是全局版本。
所以当局部变量b超出范围时,它就会被销毁。拥有与全局变量同名的局部变量通常是一种麻烦,所以尽量避免。 |
![]() |
4
2
如果您使用gcc,您可以(并且在我看来应该)使用-wshadow,它会在一些情况下发出警告,例如您的示例中的一个,这通常会出现非常细微的错误。 然而,正如许多人已经说过的,您粘贴的代码是正确的,执行您所期望的,并且不是未定义的行为。 |
![]() |
5
1
不,不可能。 编译器保证在退出if作用域时正确地销毁b对象,而在活动时,它将作用于自己的地址空间。 错误在其他地方。 |
![]() |
6
0
您的代码在语法上可能是正确的,但是这些方法做什么呢?例如,堆栈溢出可能会导致您观察到的可怕行为。 |
![]() |
AstralHex · 矩阵乘法代码工作不正常 5 月前 |
![]() |
Fishie · 作为类成员的智能指针是否仍然自动释放?[关闭] 5 月前 |
![]() |
Die4Toast · 递归调用成员箭头运算符-> 5 月前 |
![]() |
Anka Hanım · 关于结构和动态数组地址的问题 6 月前 |