[問題] 新手指標的問題

看板C_and_CPP (C/C++)作者 (老被好人當的人)時間16年前 (2009/03/15 23:17), 編輯推噓2(203)
留言5則, 3人參與, 最新討論串1/3 (看更多)
#include<stdio.h> void SumofArray(int *a[],const int *length); int main(){ int array[10][10]={0}; int m,n,length; printf("Please input the length\n"); scanf("%d",&length); for(m=0;m<length;++m){ for(n=0;n<length;++n){ printf("Please input array[%d][%d]\n",m,n); scanf("%d",&array[m][n]); } } SumofArray(array[],length); return 0; } void SumofArray(int *a[] ,const int length) { int i,j; int sum = 0; for(i = 0;i < length;++i){ for(j = 0;j < length;++j){ sum += a[i][j]; } } printf("The sum is %d",sum); } 這是我寫的計概實習的作業 而作業題目大意是 老師要求說要使用void SumifArray而不使用int 也就是不能 return sum 這題要用指標寫 我對於指標不瞭解 只能照著課本範例試著去寫 結果編譯時 SumofArray(array[],length); 這行出現錯誤 但是因為我只是照著課本亂寫 所以總覺得錯誤好像不只是那裡而已...... 因為那行能試著更改的我都試過 Orz 所以想問一下到底應該怎麼修改 順便跟我講解一下指標在這題裡到底做為什麼功用= =? 2.這題似乎有人不用指標就做出答案 有不少程式問題似乎用不用指標都能寫出 那到底指標用處是什麼? 對於程式算是好的幫助嗎? 3. 在計概指標這節裡 題目範例假設變數 int 很多會在int前加上const 雖然知道const是指常數 但不知道為什麼突然要加那個 加和不加編譯都會通過 那加它有什麼意義存在嗎? 我想這些都是基礎的問題 但我就是一直搞不懂~"~ 所以上來本版大膽請教各位高手 請各位為我解除疑惑>"< -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 218.170.7.101

03/15 23:26, , 1F
你函式的宣告和定義不一樣 const int *length ?
03/15 23:26, 1F

03/15 23:27, , 2F
你在傳array進一個func的時候 就是使用ptr而非整個copy
03/15 23:27, 2F

03/15 23:29, , 3F
const 這邊應該唸做 readonly 而非常數
03/15 23:29, 3F

03/16 00:54, , 4F
(*a)[10] or a[][10]
03/16 00:54, 4F

03/16 15:27, , 5F
1. 傳陣列 2. 可以讓你飛來飛去 3.防止手殘改到常數
03/16 15:27, 5F
文章代碼(AID): #19lHm9XY (C_and_CPP)
文章代碼(AID): #19lHm9XY (C_and_CPP)