C 函式引數中 和 的意義

2021-10-02 12:55:29 字數 1087 閱讀 9058

寫這篇博文的動機是,在看linux網路程式設計時,看到

//bind 函式定義

int bind(int sockfd, const struct sockaddr *addr, socklen_t addrlen);

//函式呼叫

bind(lfd, (struct sockaddr *)&serv_addr, sizeof(serv_addr));

覺得在函式引數中一會用 *,一會用&,有點莫名其妙,查閱資料後醍醐灌頂。

這裡其實是c++函式引數傳遞的三種方式之 指標傳遞(位址傳遞)

舉個栗子:

//指標傳遞

說明指標傳遞的過程中, 確實是把實參的位址傳遞給形參,通過形參指標確實可以更改實參指向的記憶體空間的值。

若採用指標傳遞的方式,我們在函式定義和函式宣告時使用 *來修飾形參,表示這個變數是指標型別;在進行函式呼叫時,使用 & 來修飾實參,表示是將該變數的位址作為引數傳入函式。

引用實際上是某乙個變數的別名,和這個變數具有相同的記憶體空間。 

實參把變數傳遞給形參引用,相當於形參是實參變數的別名,對形參的修改都是直接修改實參。

在類的成員函式中經常用到類的引用物件作為形參,大大的提高**的效率

舉個栗子:

//引用傳遞

說明,形參引用的修改會直接修改實參變數的值,建議採用傳遞引用的方式。

引用傳遞使用總結:引用傳遞可以看成在值傳遞的基礎上,在函式定義和宣告的形參變數前加乙個 &,其它的使用和值傳遞完全相同,因此也看出引用傳遞更加方便(在函式呼叫時,直接給變數就行,和值傳遞一樣,不需要任何修飾符)。

c中 和 的意義和用處

在 c語言中,會遇到 和 符號,下面介紹其用途 該博文主要 是將其後面的巨集引數進行字串化操作 stringizing operator 即在它引用的巨集變數的左右各加上乙個雙引號。如下圖所示 及執行結果 拼接符號 token pasting operator 如 整個語句變成了 printf to...

Python函式引數中 和 含義

一言概之,主要使用在函式引數中,在定義函式中新增是為了在呼叫該函式時直接將多個引數轉換成乙個元組,而在呼叫函式時引數新增 是為了將列表 元組轉化成多個引數。也主要使用在函式引數中,在定義函式中新增是為了在呼叫該函式時可以新增任意個鍵值對轉出乙個字典,而在呼叫函式時在列表中新增 是為了將字典轉化成多個...

python中 和 的引數

函式中的單星號引數代表此處接受 任意多個 非關鍵字引數 這些引數將以陣列形式儲存,例如 def foo a,b print b foo 1,2,3,4,5 輸出 2,3,4,5 函式中的多星號引數代表此處接受 任意多個關鍵字引數,這些引數以字典形式儲存,例如 def foo a,b print b ...