函式形參給我們的方便

2022-03-24 04:02:02 字數 894 閱讀 1664

以前在寫程式的時候,覺得c語言的函式形參總是給我了不便,因為他修改的只是實參的乙個樣本,實參並不受影響,如果想實參也隨之改變可以使用指標,最近看了乙個小程式,卻巧妙地應用了實參不受影響這一點:

在c++裡我們可以為佇列定義如下

class queue

{private:

int front, rear;

public:

void enqueue(type x);

void dequeue();

type getfront();

bool isempty();

如果用這個類實現判斷兩個佇列是否相等,可能會比較麻煩,因為判斷相等不能改變原來的結構,但是這個類沒給什麼成員可以簡單的實現這一點。

但如果有這樣乙個c結構體

struct queue

int front ,rear;

使用這個結構體的函式有

void enqueue(queue,type x);

void dequeue(queue);

type getfront(queue);

bool isempty();

現在可以輕鬆地實現判斷相等操作

bool equal()

bool flag = true;

while( ! isempty(q1) && ! isempty(q2))

if(getfront(q1) != getfront(q2))

flag = false;

if(isempty(q1) || isempty(q2)  || flag == false)

return false;

else 

return true;

注意這裡沒有更改原佇列,equal函式操作的只是其副本而已

C 函式的形參

這些天又在複習c 溫故知新,每次看書都會發現一些之前被自己忽視掉的知識點,所以,學習是不能止步的!作為一種程式語言,c 最重要的兩個部分就是函式和變數,這兩者之間進行溝通便是通過引數傳遞,而引數傳遞有很多需要注意的細節,今天就來講講引數傳遞的問題。總的來說,引數傳遞的過程,就是初始化函式形參的過程。...

函式指標形參

一 在介紹指標形參之前,先簡要說明下兩個運算子 和 1 取址運算子 用來取得其運算元的位址。取址運算子的運算元必須是在記憶體中可定址到。換句話說,該運算子只能用作函式或物件 例如左值 而不可以用於位欄位,以及那些未被儲存型別修飾符register宣告的內容。float x,ptr ptr x 合法 ...

函式形參 內聯函式

1.形參帶預設值的函式 1.給預設值,需要從右向左給,壓棧的時候從右向左壓。int sum int a 10,int b 這樣是錯誤的2.給預設值呼叫效率高 因為呼叫時給值,h彙編會直接壓棧,如果是給變數值,還需要多一條move指令,需要從記憶體中取值到暫存器,再壓棧。3.定義可以給形參預設值,宣告...