回答
不,兩者沒有區別。
你將不得不取消引用值第一個...
我.......認爲 – 2011-03-30 20:19:09
nope。這取決於你,如果你願意,你可以解引用第二個:'*(array + 3)'和'pointer [3]'是一樣的。 – BlackBear 2011-03-30 20:21:36
那麼,我有兩個函數: int function(int arr []); int function2(int * arr); 爲了測試,我有這個數組: int arr [5] = {1,1,1,1,1}; 在Visual Studio 2010中,我可以這樣做: function(arr); function2(arr); 即使我沒有將一個動態分配的數組傳遞給function2,它仍然允許我這樣做。爲什麼是這樣?通過做基準測試,兩個函數都有相同的結果,所以如果解除引用確實發生,它可以忽略不計。 – leetNightshade 2011-03-30 20:26:24
語義是相同的,但對於外部編程,它更容易和直接的理解:第二個函數接受一個數組作爲參數。它不可能像第一個那樣直接。
C編譯器沒有區別。儘管如此,讀取代碼的程序員卻有所不同。
這裏,ARR是指向一個整數(可能用於從函數返回的結果):
foo(int* arr) {}
這裏,ARR是一個指向第一個整數數組中的(可能是用於使列表在功能中和/或在功能外):
foo(int arr[]) {}
此外,指定函數的返回類型將有所幫助。
- 1. func foo(arr [] int)int和func foo(arr [num] int)有什麼區別int
- 2. (int *)arr [2]和int * arr [2]之間的區別是什麼?
- 3. 代碼崩潰時INT ARR = 1 && arr;但不是INT ARR = 0 && arr;
- 4. jQuery的$。每個(ARR,FOO)與$(ARR)。每個(富)
- 5. 作爲參數($ foo)和(foo $ foo)之間的區別
- 6. 類foo,類foo()和類foo(object)之間的區別?
- 7. 「struct foo *」和「foo *」之間的區別foo是一個struct嗎?
- 8. static_cast <int>(foo)vs.(int)foo
- 9. Clojure中foo,:: foo,:: bar/foo和bar/foo之間的區別是什麼?
- 10. Scala如何知道「def foo」和「def foo()」之間的區別?
- 11. foo.setVisibility(View.GONE)和parent.removeView(foo)之間的區別
- 12. JavaScript:Reflect.get()和obj ['foo']之間的區別
- 13. [foo release]和self.foo = nil之間的區別;
- 14. `git rebase foo bar`和`git checkout bar之間的區別; git rebase foo`?
- 15. ifeq($(foo),)和ifndef foo之間的區別是什麼
- 16. 「virtual void IBase :: Foo」和「virtual void Foo」之間的區別是什麼?
- 17. Angular 4中[(ngModel)] =「foo」和#foo之間的區別?
- 18. 「if(foo)bar();」之間的區別和「foo && bar();」
- 19. 「#if Foo - 0 == 0」和「#if defined(Foo)&& Foo == 0」之間的區別是什麼?
- 20. PHP:{$ foo}和$ {foo}之間是否有區別
- 21. 爲什麼int * arr = {};法律?
- 22. 在Backbone中,model.get('foo')和model.attributes.foo之間的任何區別?
- 23. int * x []和int(* x)[]之間的區別?
- 24. int foo = foo的標準參考
- 25. foo({1,2})如何爲「void foo(對<int,int>)」工作
- 26. javascript中的=='foo'和'foo'== a的區別
- 27. 差(ARR [5])和炭(* ARR)[5]
- 28. 這是什麼意思? int foo = foo + 4;
- 29. using params [:foo]和@foo有什麼區別?
- 30. Foo :: class.java和Foo :: javaClass有什麼區別?
哇 - 今天很多這種類型的問題! – Sadique 2011-03-30 20:30:16
相關,但更新,問題:http://stackoverflow.com/questions/5573310/difference-between-passing-array-and-array-pointer-into-function-in-c – jogojapan 2013-05-25 09:34:21