當使用sum(arr,arr+5)時);Sum是計算數組和時的用戶定義函數,其內容由程序員編寫。
如果這個函數寫成這樣:
int sum(int * a,int * b ){
int*p,s;
for(p = a,s = 0;p & ltb;p++)
s+= * p;
返回s;
}
妳可以得到正確的結果。
妳說“arr指向數組的第壹個地址”是正確的,但“它不等同於arr+5之後的arr【6】”是錯誤的,因為arr+5是arr【5】元素的地址。但即便如此,如果用戶定義的函數沒有添加arr【5】(就像上面的例子壹樣),程序也可以得到正確的結果。但是,如果不這樣寫,可能會導致此類數組的下標越界。
這取決於函數sum的寫法。
最重要的是,arr和求和後的arr+5只是兩個參數,它們不是加法的對象。這壹點必須弄清楚。