C++循环的重复定义问题

浏览:50日期:2023-04-15

问题描述

C++循环的重复定义问题第六行的int i = 0;在每轮循环均会执行,为什么能编译成功而不是提示重复定义?

问题解答

回答1:

C++的变量作用域问题

#include <iostream>using namespace std;int main(int argc, char *argv[]) { int a = 3; int i = 3; {int i = 1; } cout << i << endl; // 3}回答2:

类似于全局变量和局部变量的概念。

一个变量只在“{}”中间起作用,出了这个大括号,这个变量就自动删除了。

回答3:

编译器没有那么“笨”,它会知道你的意思是在循环中使用一个被初始化为0的变量。而上边a就不同了,编译器搞不清楚你为什么要把a定义两遍,很可能是误输入,所以会报错。

相关文章: