作者happykyoko (老被好人當的人)
看板C_and_CPP
標題[問題] 新手指標的問題
時間Sun Mar 15 23:17:28 2009
#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
→ softwind:你函式的宣告和定義不一樣 const int *length ? 03/15 23:26
→ softwind:你在傳array進一個func的時候 就是使用ptr而非整個copy 03/15 23:27
→ softwind:const 這邊應該唸做 readonly 而非常數 03/15 23:29
推 snowlike:(*a)[10] or a[][10] 03/16 00:54
推 Alexboo:1. 傳陣列 2. 可以讓你飛來飛去 3.防止手殘改到常數 03/16 15:27