1.傳值呼叫
函式的形參和實參分別占有不同記憶體塊,對形參的修改不會影響實參。
2.傳址呼叫
傳址呼叫是把函式外部建立變數的記憶體位址傳遞給函式引數的一種呼叫函式的方式。
這種傳參方式可以讓函式和函式外邊的變數建立起正真的聯絡,也就是函式內部可以直接操作函式外部的變數。
練習:1.呼叫函式實現兩個數字的交換
#include
intswap
(int
*pa,
int*pb)
intmain()
.
2.呼叫函式找出1000-2000之間的潤年
int
is_leap_year
(int y)
//呼叫函式找出潤年
else
}int
main()
}printf
("count=%d\n"
, count)
;return0;
}
3.呼叫函式找出100-200之間的素數
#include
//sqrt引用的標頭檔案
intis_prime
(int n)
}return1;
}int
main()
}printf
("%d\n"
, count)
;return0;
}
4.呼叫函式 運用二分查詢法找出指定元素下標
int
binary_search
(int arr,
int k,
int sz)
else
if(arr[mid]
>k)
else
}return-1
;}intmain()
;int k =0;
int sz =
sizeof
(arr)
/sizeof
(arr[0]
);scanf
("%d"
,&k)
;//陣列傳參的時候,傳過去乙個陣列名,本質上傳過去的是陣列首元素的位址
int ret=
binary_search
(arr,k,sz)
;//二分查詢 找到返回下標,找不到返回-1
if(ret ==-1
)else
return0;
}
函式的呼叫
第一次將函式其實就講了函式的呼叫,但是你不得不再次更新你對函式呼叫的印象。函式名 即呼叫函式,會執行函式體 直到碰到return或者執行完函式體內所有 結束。函式執行完畢所有 如果函式體不寫return,則會返回none。def foo pass print foo none很愚蠢的乙個問題,但是我...
函式的呼叫
第一次將函式其實就講了函式的呼叫,但是你不得不再次更新你對函式呼叫的印象。函式名 即呼叫函式,會執行函式體 直到碰到return或者執行完函式體內所有 結束。函式執行完畢所有 如果函式體不寫return,則會返回none。def foo pass print foo none很愚蠢的乙個問題,但是我...
呼叫函式和被呼叫函式的關係
1 當在乙個函式的執行期間呼叫另乙個函式時,在執行被呼叫函式之前,系統需要完成三件事情 1 將所有的實參 返回位址等資訊傳遞給被呼叫函式儲存 2 為被呼叫函式的區域性變數分配儲存區 3 將控制轉移到被調函式的入口。2 從被呼叫函式返回到呼叫函式之前,系統要做三件事情 1 儲存被調函式的計算結果 2 ...