[英]c-fill a one dimensional array with for loop
我可以理解第一個解決方案。但在第二個解決方案中,我對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
是否小於 4,然后執行大括號內的代碼。 那是scanf
語句,它嘗試讀取一個整數到&pin[i]
指定的地址。 由於i
為零,這意味着pin[0]
的地址,它是數組pin
的第一個元素。
在scanf
執行之后(以及它是否成功,這是您可能想要研究的) for
語句增加i
的值,檢查它是否仍然小於 4,並再次執行大括號之間的代碼塊. 這一次, scanf
語句嘗試讀取pin[1]
。
循環再執行兩次,可能會在將i
增加到 4 之后終止之前將整數存儲在pin[2]
和pin[3]
。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.