指針對我來說是一件新事物,我很難理解它,但我不會屈服,並希望能夠學習它。scanf(「%d」,* p)和scanf(「%d」,p)有什麼區別?
scanf ("%d", *p)
和scanf ("%d", p)
之間的區別是什麼?
在例子中,我看到如果我想在變量中輸入一些值,我應該使用scanf ("%d", p)
。這對我來說沒有意義。它不應該是scanf ("%d", *p)
?
我把它解釋爲:「把指針指向的某個整數值」,例如它指向變量x
,然後它應該是x = 10
,但它不是。那麼如何使用scanf()
和指針來設置數組中的值呢?
我在哪裏發生了什麼問題?我試圖用C語言來學習,因爲它是我應該在我的課堂上使用的。
例如:
#include <stdio.h>
int main() {
float x[10], *p;
int i;
p = &x[0];
for (i = 0; i < 10; i++) {
scanf("%d", p + i);
}
for (i = 0; i < 10; i++) {
printf("%d", *(p + i));
}
return 0;
}
爲什麼只在第二循環的第一for() {}
和*(p + i)
p + i
?我會把*(p + i)
也放在第一個for() {}
。 *(p + i)
對我來說就像是:「第(p + i)個元素是什麼,並使它等於某個值」。
也許你應該添加類型... – Deduplicator
什麼是'p'?如果'p'不是指針,則應該使用'scanf(「%d」,&p)' – slugonamission
順便說一句:在使用希望讀取的內容之前檢查'scanf()'的返回值。 'scanf(「%d」,p + i)!= 1)Oops();' – chux