[問題] c語言新手指標問題!

看板C_and_CPP (C/C++)作者 (神空暗夜)時間9年前 (2016/05/21 16:46), 編輯推噓2(202)
留言4則, 2人參與, 最新討論串1/2 (看更多)
最近再透過看書自學 學到指標的時候有一題是 叫我利用指標運算以及函數來找出最大最小值 寫完以後卻在主程式使用函數的時候系統說無法讀取a的陣列 我之後尋求 朋友的幫助以後他將函數改成void srh(int a[][col],int *)就可以了 但我還是不懂為什麼不能讀取a的陣列! 想請教各位大大!! 程式碼如下! #include<stdlib.h> #include<stdio.h> #define row 4 #define col 3 void srh(int *a[][col], int *); int main(void) { int a[row][col] = { { 26, 5, 7 }, { 10, 3, 47 }, { 6, 76, 8 }, { 40, 4, 32 } }; int i, j, b[2] = {}; printf("array is :\n"); for (i = 0; i<row; i++) { for (j = 0; j<col; j++) printf("%3d", *(*(a + i) + j)); printf("\n"); } srh(a, b); printf("max is %d\n", *(b + 1)); printf("min is %d\n", *b); system("pause"); return 0; } void srh(int *a[][col], int *b) { int i, j; *b = *a; *(b + 1) = *a; for (i = 0; i<row; i++) for (j = 0; j<col; j++) { if (*(*(a + i) + j) < *b ) *b = *(*(a + i) + j); if (*(*(a + i) + j) > *(b + 1)) *(b + 1) = *(*(a + i) + j); } } -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 182.235.56.238 ※ 文章網址: https://www.ptt.cc/bbs/C_and_CPP/M.1463820406.A.81D.html

05/21 16:57, , 1F
void srh(int a[][col],int *)相當於
05/21 16:57, 1F

05/21 16:58, , 2F
void srh(int (*a) [col],int *)
05/21 16:58, 2F

05/21 17:54, , 3F
妳的其實是相當於Void srh(int * (a[][col]), int *b )
05/21 17:54, 3F

05/22 01:45, , 4F
感謝tony大我思考看看!
05/22 01:45, 4F
文章代碼(AID): #1NG21sWT (C_and_CPP)
討論串 (同標題文章)
文章代碼(AID): #1NG21sWT (C_and_CPP)