這是我的第一篇文章,所以忍受着我。我在退學後回到C寫作一段時間。我試圖將一個整數數組傳遞到一個函數,該函數會將整個數組打印在同一行上(作爲更大努力的一部分)。我的簡單化代碼如下:傳遞一個int指針到一個函數來打印該數組在C中
// main.c
#include <stdio.h>
int main(void) {
int arr[] = {3,4,5,6,7};
int *ptr = arr;
int l = 5;
printarr(arr,l);
return 0;
}
而且
// function printarr
#include <stdio.h>
void printarr(char *ptr, int l) {
int k = 0;
for (k = 0; k < l; ++k) {
printf("%d", ptr[k]);
}
}
編譯和運行的main.c後,輸出我得到的是:
30004
我覺得我一直在打我的試圖找出一個簡單的問題來抵擋牆壁。當我在main中迭代和打印數組時,我得到了我期望的輸出('34567'),但是當我試圖通過函數來完成時,它顯得很難過。我懷疑我濫用指針,但是我不確定。
幫助表示讚賞。
謝謝。
編輯:在看了前兩個評論後,我完全爲自己感到羞愧。謝謝你們。哇,只是哇。
爲什麼'printarr'採用'char *'? – user2357112
'char * ptr' - >'int * ptr'。在使用之前也放置原型。 – BLUEPIXY
我花了多少時間忽略了顯而易見的現象是荒謬的。我的話。謝謝你的新鮮眼睛。 – GGubs