c - 为什么输出为 8883。代码是如何执行的?
问题描述
变量i
正在成为8
循环的第一个条目。那么i <= 2
下次条件如何满足呢?
#include <stdio.h>
int main()
{
int i;
for (i = 0; i <= 2; i++)
{
int i = 8;
printf("%d", i);
}
printf("%d", i);
return 0;
}
解决方案
8
它从 i = 0、i = 1 和 i = 2 的循环中打印3 次。
for(i=0;i<=2;i++)
{
int i=8;
printf("%d",i);
}
第二个变量i
(在循环体内声明的变量)不会影响第一个变量(在循环i
外声明的变量),因为它是在不同的范围内声明的,即在循环内。
最后的最后 3 个来自因为i
在退出循环之前最里面的部分将在最后一次增加。因此对于:
printf("%d",i);
该变量i
将取值 3。
推荐阅读
- java - 挂起两个侦听器的 Java 套接字应用程序
- r - 读取csv文件后如何将因子类型转换为R中的数字类型?
- amazon-web-services - 一次通过无服务器框架部署 Lambda + API-gateway + CloudFront
- mysql - 使用 yum 删除 msql-libs 会删除许多关键应用程序
- functional-programming - 如何在 Erlang 中比较两个映射的值。[我的解决方案没有返回任何值]
- python-3.x - 如何防止 geckodriver+selenium (python) 打开新的 firefox 实例
- nginx - 错误:horizontalpodautoscalers.autoscaling“nginx-1-hpa”已经存在
- python-3.x - 子类化 rv_continuous 时的溢出错误
- c# - 使用 WebClient UploadFile 线程被中止
- hibernate - Querydsl Projection.bean 找不到设置器