C 引用方式傳參,傳值方式傳參( )

2021-09-17 08:26:58 字數 1072 閱讀 1089

1、引用方式傳參

引用相當於是外部變數的別名,實際操作的就是該變數,即在函式內對該變數進行修改的話,在外部該變數也會相應被修改。

//外部變數的值也會被修改

void changeref(int& ref)

2、傳值方式傳參

實際上是複製了乙個外部變數的副本進入函式中,在函式內操作的為該副本,對該變數的修改並不會實際修改函式外的該變數。

//外部變數的值不會被修改

void changenotref(int ref)

3、指標方式傳參

如果傳值方式傳入的是指標,那麼如果單純修改指標,那麼在跳出函式後,該指標指向不受影響,但是如果修改的是指標指向的值,那麼外部指標所指向的內容會相應的修改。因為以指標為引數進行傳值,也是在函式內部複製了乙個指標的副本,因而在內部修改指標本身即修改其副本並不影響外部的指標,但是兩個指標都是指向同乙個記憶體空間的,因而如果在函式內部修改了指標指向的內容,外部指標指向的內容也就相應改變了。

//先將指標指向位址,然後修改了指標指向的位址

//退出函式後,指標指向的位址不變

int *ptr = &ref;

void changeptr(int* ptr)

//呼叫方式

changeptr(ptr);

//先將指標指向位址,然後修改了指標指向位址的內容

int *ptr = &ref;

void changeptrval(int* ptr)

//呼叫方式

changeptrval(ptr);

4、陣列作為引數的傳遞

當陣列作為引數傳遞到函式時,形參直接是陣列的頭位址(也就是陣列下標為0的位址),實參直接用陣列的名字,這樣經過函式可以改變外部陣列的值。

//可以改變外部陣列的值

//宣告方式

void bubblesort(int r, int n)

//呼叫方式

bubblesort(r, n);

Mybatis傳參方式

mybatis傳多個引數 三種解決方案 據我目前接觸到的傳多個引數的方案有三種。第一種方案 dao層的函式方法 1public user selectuser string name,string area 123select from user user t where user name and...

SpringBoot傳參方式

位址傳參 1.建立乙個action類 package com.lion.action import org.springframework.stereotype.controller import org.springframework.web.bind.annotation.responsebod...

springmvc傳參方式

這個是最原始的方式 使用註解後,後台這樣寫形參,前台傳的引數,會自動封裝到形參裡面,但這個是基於同名配置的規則,前台引數的名稱,要和後台形參名一致 如果前台名稱不一致,則註解不進去 requestparam value name string username 表明前台的傳的引數名稱叫name,要往...