我剛剛開始學習C代碼,我已經給出了一個練習來創建兩個函數,您可以在我的代碼中看到createData()
和udskriv()
,其中createData
應該創建一個數組使用用戶輸入,並且udskriv
方法應該使用指針來打印它。C:通過指針打印數組給出錯誤的數字
但是,我的代碼只給了我1或2的正確數字,然後通常打印時爲0和一個非常高的數字(如10位數字)。通過運行main
方法中的循環,我能夠通過無功能的方式實現它,但我無法使它與它們一起工作。
我有一些Java的經驗,這可能會幫助你解釋爲什麼我做錯了什麼。
#include <stdio.h>
static int* createData()
{
int test[4];
int c;
int *ptr;
printf("Indtast 4 tal, 1 af gangen");
for (c = 0; c < 4; c++)
{
scanf("%d", &test[c]);
}
ptr=&test;
return (ptr);
}
static void udskriv(int* ptr)
{
int i;
for (i=0;i<4;i++)
{
printf("%d\n",*ptr++);
}
}
int main(void)
{
udskriv(createData());
}
你在看哪本書?你無法通過反覆試驗來學習C;這樣做可能具有誤導性和危險性,而且您這樣做是錯誤的這一事實應該證明試驗和錯誤不起作用。你注意到這個問題其實是一個好結果;很多時候,人們在通過反覆試驗學習時都沒有注意到問題。如果你還沒有書,我可以爲你推薦K&R 2E。 – Sebivor
btw他是對的:_我對Java有一些經驗_解釋他的錯:___不像Java__那樣使用C!他們使用完全不同的數據處理! – LittleByBlue