① c語言中形參和實參是什麼意思有什麼區別
形參就是形式參數,用一個變數代表大家。實參就是實際參數,用一個 確切的數值代替形式參數,可以是表達式。實際參數與形式參數的參數個數、類型和順序都應一樣,如果不一樣的話,系統會強制轉換,這樣會造成數據的丟失。實 參向形參的傳遞是值的傳遞。
這個值就是對實參的表達式進行計算的結果,它可以是常量值、變數值、數組元素、函數值等。如果實參是數組名了,那麼它傳送的就是地址的值了。比如:
double power(double x ,int n)定義一個雙精度參數
power(3.0,5) 調用
x n 是形參,3.0,5是實參。如果上面定義的是整形 double power(int x ,int n),下面調用的是power(3.3,5)那麼實參中3.3會被轉換成3,一部分數據丟失了。
② C語言中什麼是形參,什麼是實參
形參:全稱為「形式參數」是在定義函數名和函數體的時候使用的參數,目的是用來接收調用該函數時傳遞的參數。
形參的作用是實現主調函數與被調函數之間的聯系,通常將函數所處理的數據,影響函數功能的因素或者函數處理的結果作為形參。
實參:全稱為"實際參數"是在調用時傳遞給函數的參數,即傳遞給被調用函數的值。
實參可以是常量、變數、表達式、函數等, 無論實參是何種類型的量,在進行函數調用時,它們都必須具有確定的值, 以便把這些值傳送給形參。 因此應預先用賦值,輸入等辦法使實參獲得確定值。
(2)c語言形參數組是什麼意思擴展閱讀:
形參和實參的特點:
1、形參變數只有在被調用時才分配內存單元,在調用結束時,即刻釋放所分配的內存單元。因此,形參只在函數內部有效。函數調用結束返回主調用函數後則不能再使用該形參變數。
2、實參可以是常量、變數、表達式、函數等,無論實參是何種類型的量,在進行函數調用時,它們都必須有確定的值,以便把這些值傳送給形參。因此應預先用賦值,輸入等辦法使參數獲得確定值。
3、實參和形參在數量上,類型上、順序上應嚴格一致,否則就會發生類型不匹配的錯誤。
4、在一般傳值調用的機制中只能把實參傳送給形參,而不能把形參的值反向地傳送給實參。因此在函數調用過程中,形參值發生改變,而實參中的值不會變化。而在引用調用的機制當中是將實參引用的地址傳遞給了形參,所以任何發生在形參上的改變實際上也發生在實參變數上。
參考資料來源:網路-形參
參考資料來源:網路-實參
③ C語言數組作為形參實參的一些疑惑
void fun(int arr[], int n);
在函數定義的時候,形參int arr[]不是表示某個元素的值,而是告訴編譯器第一個參數是一個數組指針,可以接收實參傳過來的數組地址。
實際上以上定義等價於下面的定義。
1.數組裡面帶元素個數:
void fun(int arr[常數], int n);
這里的常數可以是任意正整數,實際上編譯器是會忽略,因為這里只要告訴編譯器我接收的是一個數組指針,至於它有多少個元素不關心,因為實參也只是傳個地址過來。元素個數由參數二控制。至於為什麼要這么約定可以看下面補充說明。
2.void fun(int *arr, int n);
使用指針,這種方式和題目中的方式是最常用的方式,第一種最不常用。
補充說明(為什麼數組作為函數參數是傳地址,而不是傳每個元素):
設想一下,有一個函數如下
int fun(int nums[1000], int size)
它的參數一要處理1000多個元素的數組,如果是傳值即每個元素,那在函數體內是不是就得再申請1000多個整數的內存,還需要把值從實參那裡復制過來,這是非常耗時間的而且沒有必要,因為在內存的某個塊已經存放了這些數據。只要告訴放在哪個位置,你函數體去那裡找就行了。這里說的就是傳地址了,只需要傳個數組首地址,然後告訴有多少個元素要處理就OK了。傳地址只需要復制地址給形參,相對傳每個元素快得多。
④ C語言中什麼是形參,什麼是實參
形參是在定義函數名和函數體的時候使用的參數,目的是用來接收調用該函數時傳遞的參數。實參是一個確定的值。
void sort(int arr[], int n)中arr[]和n就是形參,sort(arr[5], 5)中arr[5]和5就是實參