c-用for循环填充一维数组
c-fill a one dimensional array with for loop
我能理解第二个解决方案中的第一个solution.But我对scanf
的方式感到困惑,同时接受4个值并将它们应用于for
循环。
//first solution
#include <stdio.h>
int main() {
int pin[4],i;
for(i=0; i<4; i++){
printf("Give value: ");
scanf("%d", &pin[i]);
}
return 0;
}
//second solution
#include <stdio.h>
int main() {
int pin[4],i;
printf("Give 4 values: ");
for(i=0; i<4; i++){
scanf("%d", &pin[i]);
}
return 0;
}
不同之处仅在于第一个示例中有一个 printf 在循环的每次迭代中询问您输入值,而在第一个示例中循环之前有一个 printf(只有一个)。
重要的操作(scanf)在两个示例中完全相同。
scanf
命令不会同时读取四个值。
这是一个循环的示例:一段代码多次执行相同的操作。
for(i=0; i<4; i++){
scanf("%d", &pin[i]);
}
for
语句所做的是,首先将i
初始化为零,然后检查i
是否小于四,然后执行其花括号内的代码。那就是 scanf
语句,它试图将整数读取到 &pin[i]
指定的地址。由于 i
为零,这意味着 pin[0]
的地址是数组 pin
.
的第一个元素
在 scanf
执行后(以及它是否成功,这是您可能想要查看的内容)for
语句递增 i
的值,检查还是不到四,再次执行大括号之间的代码块。这次,scanf
语句尝试读取到 pin[1]
.
循环再执行两次,可能会在 pin[2]
和 pin[3]
中存储整数,然后在 i
递增到 4 之后终止。
我能理解第二个解决方案中的第一个solution.But我对scanf
的方式感到困惑,同时接受4个值并将它们应用于for
循环。
//first solution
#include <stdio.h>
int main() {
int pin[4],i;
for(i=0; i<4; i++){
printf("Give value: ");
scanf("%d", &pin[i]);
}
return 0;
}
//second solution
#include <stdio.h>
int main() {
int pin[4],i;
printf("Give 4 values: ");
for(i=0; i<4; i++){
scanf("%d", &pin[i]);
}
return 0;
}
不同之处仅在于第一个示例中有一个 printf 在循环的每次迭代中询问您输入值,而在第一个示例中循环之前有一个 printf(只有一个)。
重要的操作(scanf)在两个示例中完全相同。
scanf
命令不会同时读取四个值。
这是一个循环的示例:一段代码多次执行相同的操作。
for(i=0; i<4; i++){
scanf("%d", &pin[i]);
}
for
语句所做的是,首先将i
初始化为零,然后检查i
是否小于四,然后执行其花括号内的代码。那就是 scanf
语句,它试图将整数读取到 &pin[i]
指定的地址。由于 i
为零,这意味着 pin[0]
的地址是数组 pin
.
在 scanf
执行后(以及它是否成功,这是您可能想要查看的内容)for
语句递增 i
的值,检查还是不到四,再次执行大括号之间的代码块。这次,scanf
语句尝试读取到 pin[1]
.
循环再执行两次,可能会在 pin[2]
和 pin[3]
中存储整数,然后在 i
递增到 4 之后终止。