以前在寫程式的時候,覺得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.定義可以給形參預設值,宣告...