C 三種不同的值傳遞形式

2021-10-02 04:44:11 字數 772 閱讀 2712

1.在記憶體中有位址和值兩種,

值傳遞只是把變數的值複製給形參

引用傳遞只是把變數的位址複製給形參,在另乙個函式中直接操作位址

指標傳遞是在乙個形參中將實參的位址賦值給形參的值

指標傳遞與引用傳遞的區別:

(指標傳遞本質上時值傳遞)

1.引用傳遞在使用前必須被初始化,指標傳遞則可以在任意時候被初始化

2.指標傳遞是乙個指標可以指向別的變數,也可以指向null,而引用傳遞只能使用形參傳遞過來的位址變數

特殊用法:當在乙個區域性函式中只能返回乙個值給主函式,實際需要返回多個函式值,這時就可以使用引用傳遞或者指標傳遞。

★相同點:

●都是位址的概念;

指標指向一塊記憶體,它的內容是所指記憶體的位址;而引用則是某塊記憶體的別名。

★不同點:

●指標是乙個實體,而引用僅是個別名;

●引用只能在定義時被初始化一次,之後不可變;指標可變;引用「從一而終」,指標可以「見異思遷」;

●引用沒有const,指標有const,const的指標不可變;(具體指沒有int& const a這種形式,而const int& a是有     的,  前者指引用本身即別名不可以改變,這是當然的,所以不需要這種形式,後者指引用所指的值不可以改變)

●引用不能為空,指標可以為空;

●「sizeof 引用」得到的是所指向的變數(物件)的大小,而「sizeof 指標」得到的是指標本身的大小;

●指標和引用的自增(++)運算意義不一樣;

●引用是型別安全的,而指標不是 (引用比指標多了型別檢查)

C語言中函式引數的傳遞的三種形式

下面用這三種方式來實現兩個變數值的對調。一為值傳遞,二為位址傳遞,三為引用傳遞。示例 一 該方法並不能實現兩個變數值的對調 void exchg1 int x,int y int temp temp x x y y temp printf x d,y d n x,y int main int a 4...

函式的三種值傳遞方式

關於函式引數的傳遞方式 傳值引數 實際引數的值被複製到由函式開闢的記憶體空間中,成為形參的初始值。完成引數值傳遞之後,函式體中的語句對形參的訪問 修改都是在這個標識物件上操作的,與實際引數無關。例項 include include using namespace std void swap int ...

if 語句的三種形式

if 語句的三種形式 第一種形式為基本形式 if 如果表示式的值為真,則執行其後的語句,否則不執行該語句。第二種形式為 if else 如果表示式的值為真,則執行語句1,否則執行語句2。第三種形式為 if else if 依次判斷表示式的值,當出現某個值為真時,則執行其對應的語句。然後跳到整個if語...