#include
int main(){
int all[5];
int *putin();
int *p=putin();
for(int k=0;k<5;k++,p++)
printf("%d ",*p);
return 0;
}
int *putin(){
int array[5];
printf("please enter 5 numbers:");
for(int i = 0;i<5;i++){
scanf("%d",&array[i]);
}
return(array);
}
代碼如上圖,輸出結果裡有數值有地址,無法理解哪裡的邏輯有問題,請指教,萬分感謝!
putin高數裡面的array數組是局部變量,內存是臨時分配的,函數調用完了,內存就被釋放掉,其中保存的數據也會改變,也就是說,指針p雖然依然能指到那個地址,但內容已經不是你輸入的那些了。你可以將主函數裡定義的all數組通過參數傳遞但putin函數中,然後輸入數據。