两个具有相同名称的变量

Two variables with the same name

本文关键字:变量 两个      更新时间:2023-10-16

我错过了使用i为两个变量编写变量名称,一个是int,另一个是Uint16,如下所示:

for(int i = 0; i <= 5; i++) {
    for(Uint16 ch = 5; ch < 20; ++ch) {
        Uint16 i = ch;
        //Some code
        cout << i;
    }
}

使用clang x86 5.1它可以编译,但是哪个i会显示?

在内部作用域中,变量声明将遮蔽之前的任何声明。在您的代码示例中,输出将是每次循环迭代时ch的值。

如果要在内部for循环之外输出i的值,则输出将是在第一个for循环中声明的i的值。