C 陣列的傳值

2021-09-10 16:41:10 字數 377 閱讀 4416

#c++陣列的傳值

將陣列作為引數進行傳遞:

這兩種兩種方法在函式中對陣列引數的修改都會影響到實參本身的值!

這裡還有幾點需要注意:

1.在以上兩個函式的形參前面***加上const則表示整個陣列唯讀,而不是只有首位址對應儲存的資料唯讀。***

2.第二種形式不能用c++11中的for…auto來迴圈列印。

3.陣列的大小要用sizeof()來求,不能用.size(),因為.size()只有struct 或者union才能用, vector算是struct!

4.如果在函式內部又宣告乙個int* tmp型別的變數,然後把p賦值給tmp, 通過tmp修改數陣列也是一樣,都會修改實參本身!

C 中的傳值 傳引用

在c 中預設是按值傳遞,什麼是按值傳遞呢?我們都知道,在引數傳遞過程中,形參和實參占有不同位置的儲存空間,被呼叫過程在執行過程中,改變了形參的值,但不會影響呼叫過程 主調過程 的實參值。所以,當被呼叫過程執行結束返回到呼叫過程,實參還是呼叫之前的值。因此為了保護實參不受被呼叫過程的影響,應選用按值傳...

C 中的傳值 傳引用

在c 中預設是按值傳遞,什麼是按值傳遞呢?我們都知道,在引數傳遞過程中,形參和實參占有不同位置的儲存空間,被呼叫過程在執行過程中,改變了形參的值,但不會影響呼叫過程 主調過程 的實參值。所以,當被呼叫過程執行結束返回到呼叫過程,實參還是呼叫之前的值。因此為了保護實參不受被呼叫過程的影響,應選用按值傳...

C 傳值和傳位址

1 交換變數x和y的值 void swap int x,int y int temp temp x x y y temp cout int a 5 int b 10 int x 1 int y 2 void swap int x,int y int a 5 int b 10 int x a int ...