還是有差別的
雖然大多數時候都可以相互用最大的差別就是指針可以改變,可以通過指針改變指向內容的值,但數組名不行
舉個例子:(分別作爲形參)
int num[10], *p;
p = num;//此時p指向數組的第一個元素
在主函數裏調用兩個函數
1 Sum(num);
2 Sum(p+2,10);
這就有區別了,因爲num數組首地址它不能變化,但是此時p指向了數組的第三個元素,而且後面的那個10也是可以改變的,所以說用指針作爲形參的時候要帶一個int n 表示你要處理的數的個數,所以說用指針作爲形參的話會給你一種假象,它的確是指向的數組的某個元素(這要看你的指針移動了,比如說p+2等等,數組名不能移動),但是它僅僅只是一個指針,你可以在調用的函數裏用sizeof(num),sizeof(p)求它們的值,就知道爲什麼總是要加上一個int n了,因爲如果不加的話函數就不知道你要操作的數的個數,另外別忘了傳遞數組和傳遞一般的int,double等類型是不一樣的,傳遞數組傳遞的是原數組(有問題),函數的操作就改變了原來的數組,而傳遞一般的數只是傳遞它的拷貝,對原來的數沒有影響;