您好,登錄后才能下訂單哦!
C語言中怎么實現形參和實參,很多新手對此不是很清楚,為了幫助大家解決這個難題,下面小編將為大家詳細講解,有這方面需求的人可以來學習下,希望你能有所收獲。
形式參數和實際參數
函數的參數分為形參和實參兩種。在本小節中,進一步介紹形參、實參的特點和兩者的關系。形參出現在函數定義中,在整個函數體內都可以使用,離開該函數則不能使用。實參出現在主調函數中,進入被調函數后,實參變量也不能使用。形參和實參的功能是作數據傳送。發生函數調用時,主調函數把實參的值傳送給被調函數的形參從而實現主調函數向被調函數的數據傳送。
函數的形參和實參具有以下特點:
1.形參變量只有在被調用時才分配內存單元,在調用結束時,即刻釋放所分配的內存單元。因此,形參只有在函數內部有效。函數調用結束返回主調函數后則不能再使用該形參變量。
2.實參可以是常量、變量、表達式、函數等,無論實參是何種類型的量,在進行函數調用時,它們都必須具有確定的值,以便把這些值傳送給形參。因此應預先用賦值,輸入等辦法使實參獲得確定值。
3.實參和形參在數量上,類型上,順序上應嚴格一致,否則會發生類型不匹配”的錯誤。
4.函數調用中發生的數據傳送是單向的。即只能把實參的值傳送給形參,而不能把形參的值反向地傳送給實參。因此在函數調用過程中,形參的值發生改變,而實參中的值不會變化。
【例】可以說明這個問題。
">#include<stdio.h> int add(int num) { int i; for(i=0;i<100;i++) { num=num+i; } printf("num=%d\n",num); } int main() { int num; printf("輸入一個數\n"); scanf("%d",&num); add(num); printf("n=%d\n",num); return 0; }
本程序中定義了一個函數add,該函數的功能是求num+i的累加值。在主函數中輸入num值,并作為實參,在調用時傳送給add函數的形參量nuum。在主函數中用printf語句輸出一次n值,這個num值是實參num的值。在函數add中也用printf語句輸出了一次n值,這個num值是形參最后取得的n值0。從運行情況看,輸入num值為6。即實參num的值為6。把此值傳給函數add時,形參num的初值也為6,在執行函數過程中,形參num的值變為4956。返回主函數之后,輸出實參num的值仍為6。可見實參的值不隨形參的變化而變化。
看完上述內容是否對您有幫助呢?如果還想對相關知識有進一步的了解或閱讀更多相關文章,請關注億速云行業資訊頻道,感謝您對億速云的支持。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。