c - 为什么可以在 C 中的循环内定义变量?
问题描述
为什么这段代码没有给出重新定义错误:
int main(void)
{
for (int i = 0; i < 2; i++)
{
int number = 5;
}
}
而这段代码确实:
int main(void)
{
int number = 5;
int number = 5;
}
解决方案
Redfinition 错误是编译时问题,而不是运行时问题。您不会在循环中收到重新定义错误,因为您number
在该范围内只有一个声明。
在第二个片段中,您number
在同一范围内有两个声明,因此出现错误。
推荐阅读
- python - 如何仅使用单词中的一些字母在 DB(SQLLite3 和 tkinter 树视图)中进行搜索?
- entity-framework - 如何使用 Fluent Api 命名多对多关系表?
- javascript - 每当我输入数据时,Moment js 都会得到错误的 UTC
- javascript - 如何在 x 轴上格式化 Highcharts 中的日期?
- react-redux - 无法直接修改 redux 工具包中额外 reducer 中当前 Slice 中引用的状态变量
- javascript - 如何在不使用 React Native 中的按钮的情况下将 TextInput 值传递到另一个屏幕
- unit-testing - 用 Mockery 和 PHPUnit 模拟一个类的常量和方法
- azure - 如何在多租户 Azure B2C 登录页面中允许本地帐户的注册选项?
- android - 如何在片段中测试 Toast
- javascript - 使用 javascript 和 jquery 在树视图中使终端节点可选