gpt4 book ai didi

objective-c - 具有相同变量名称的变量范围?

转载 作者:搜寻专家 更新时间:2023-10-30 20:26:17 27 4
gpt4 key购买 nike

( Objective-C 代码)

int i=5;
{
int i=i;
NSLog(@"Inside Scope: %i",i);
}
NSLog(@"Outside Scope: %i",i);

打印:

3385904(垃圾)

5


int i = i; 替换为 int i= 10; 打印正确...(在范围的 i 内)

如:

10

5

并且(仅此代码)

int i=i;

编译,但立即出现段错误。


这些语法如何有效?它们有什么用,或者它们是本应更早发现的编译器错误?

是否有任何情况需要在新类型下的新范围内使用相同的变量名,您将如何区分?

我唯一的想法可能是 for() 循环,因为如果您有两个循环,编译器会因为您重新定义 int i; 两次而感到不安。

最佳答案

因为您正在重新定义 i,所以您将 i 设置为尚未设置的自身值。

简单地转动这个:

int i=5;
{
int i=i;
}

进入这个:

int i = i;
//int i=5;
//{
//int i=i;
//}

会给你同样不同的结果。此问题与范围无关。

关于objective-c - 具有相同变量名称的变量范围?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9264901/

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