1. 程式人生 > >c語言中形參和實參的區別?

c語言中形參和實參的區別?

形式引數和實際引數 
函式的引數分為形參和實參兩種。在本小節中,進一步介紹形參、實參的特點和兩者的關係。形參出現在函式定義中,在整個函式體內都可以使用,離開該函式則不能使用。實參出現在主調函式中,進入被調函式後,實參變數也不能使用。形參和實參的功能是作資料傳送。發生函式呼叫時,主調函式把實參的值傳送給被調函式的形參從而實現主調函式向被調函式的資料傳送。 
函式的形參和實參具有以下特點: 
1. 形參變數只有在被呼叫時才分配記憶體單元,在呼叫結束時,即刻釋放所分配的記憶體單元。因此,形參只有在函式內部有效。函式呼叫結束返回主調函式後則不能再使用該形參變數。 
2. 實參可以是常量、變數、表示式、函式等,無論實參是何種型別的量,在進行函式呼叫時,它們都必須具有確定的值,以便把這些值傳送給形參。因此應預先用賦值,輸入等辦法使實參獲得確定值。 
3. 實參和形參在數量上,型別上,順序上應嚴格一致,否則會發生型別不匹配”的錯誤。 
4. 函式呼叫中發生的資料傳送是單向的。即只能把實參的值傳送給形參,而不能把形參的值反向地傳送給實參。 因此在函式呼叫過程中,形參的值發生改變,而實參中的值不會變化。 

【例】可以說明這個問題。 
main() 
{ 
int n; 
printf("input number\n"); 
scanf("%d",&n); 
s(n); 
printf("n=%d\n",n); 
} 
int s(int n) 
{ 
int i; 
for(i=n-1;i>=1;i--) 
n=n+i; 
printf("n=%d\n",n); 
} 

本程式中定義了一個函式s,該函式的功能是求∑ni的值。在主函式中輸入n值,並作為實參,在呼叫時傳送給s 函式的形參量n( 注意,本例的形參變數和實參變數的識別符號都為n,但這是兩個不同的量,各自的作用域不同)。在主函式中用printf 語句輸出一次n值,這個n值是實參n的值。在函式s中也用printf 語句輸出了一次n值,這個n值是形參最後取得的n值0。從執行情況看,輸入n值為100。即實參n的值為100。把此值傳給函式s時,形參n的初值也為100,在執行函式過程中,形參n的值變為5050。返回主函式之後,輸出實參n的值仍為100。可見實參的值不隨形參的變化而變化。

相關推薦

C語言函式傳遞(

形參:在被調函式形參表中的變數名、陣列名,該過程在被呼叫前,沒有為它們分配記憶體,其作用是說明自變數的型別和形態以及在過程中的作用。  形參可以是 合法變數名,陣列名  實參:從主調過程傳遞給被呼叫過程的引數值。實參可以是變數名、陣列名、常數或表示式。在過程呼叫  傳遞引

C語言的++aa++的區別

自增自減1、++自增運算子:如a++,++a都等價於a = a + 1;2、--自減運算子:如a--,--a都等價於 a = a -1; 雖然++a和a++等價的結果一樣,但是運算過程確大不相同,以下舉例說明: #include <stdio.h> int

c語言區別

形式引數和實際引數 函式的引數分為形參和實參兩種。在本小節中,進一步介紹形參、實參的特點和兩者的關係。形參出現在函式定義中,在整個函式體內都可以使用,離開該函式則不能使用。實參出現在主調函式中,進入被調函式後,實參變數也不能使用。形參和實參的功能是作資料傳送。發生函式呼叫

c語言參與的關係

形參和實參的區別 形參出現在函式定義中,在整個函式體內都可以使用, 離開該函式則不能使用。 實參出現在主調函式中,進入被調函式後,實參變數也不能使用。  形參和實參的功能是作資料傳送。發生函式呼叫時, 主調函式把實參的值傳送給被調函式的形參從而實現主調函式向被調函式的資料傳送。 1

C語言函式篇(二)

參引數:形參和實參 ------------------------------- 形參實現一種資料傳入的介面 ,由實參 拷貝 給 形參 拷貝!!!!!!!!!!! 拷貝1: void func(int tmp

C++的const限定符(5)——const

1、當形參有頂層const時,傳給它常量物件或非常量物件都是可以的,這一點複合之前所說的,因為形參的初始值是拷貝了實參的。 2、在定義過載函式時,需要注意:對於形參是否是const的,是無法被編譯器所區分的。 void foo(int i){} void foo(co

C語言第55課初始

·第55課初始形參和實參 ·例子:自定義冪函式 #include<stdlib.h> //自行實現pow函式 //求第一個引數的n次冪 double power(double,int);//函式原型

JS區別

JS中形參和實參的區別 from:https://blog.csdn.net/qq_33187168/article/details/50346465 形參出現在函式定義中,在整個函式體內都可以使用, 離開該函式則不能使用。 實參出現在主調函式中,進入被調函式後,實參變數也不能使用。

C++函式——const

    頂層const: 表示任意的物件是常量。      底層const: 與指標和引用等複合型別有關。     對指標而言, 頂層const表示指標本身是個常量, 而底層const表示指標所指的物件是一個常量。 int i = 22; const

Java區別以及傳值呼叫傳引用呼叫

原文地址:http://blog.csdn.net/miniminiyu/article/details/52061401  名詞解析: 1.形參:用來接收呼叫該方法時傳遞的引數。只有在被呼叫的時候才分配記憶體空間,一旦呼叫結束,就釋放記憶體空間。因此僅僅在方法內有效

[C#] 函式呼叫之間加冒號

看到下面的語法,其他語言都沒見過這種語法 int GetValue(string prompt, int min, int max) { int result; do { result = SnapsEngine.R

方法

<span style="font-size:18px;">package learn_20150801; public class DataWrap { public int a; public int b; }</span><span style="color:#ff

C的關係

形參變數只有在被呼叫時才分配記憶體單元,在呼叫結束時,即刻釋放所分配的記憶體單元。因此,形參只在函式內部有效。函式呼叫結束返回主呼叫函式後則不能再使用該形參變數。 在一般傳值呼叫的機制中只能把實參傳送給形參,而不能把形參的值反向地傳送給實參。因此在函式呼叫過程

關於Java區別

類型 分配 不能 內部使用 rdquo 數量 運行時 常量 使用 形參出現在函數定義中,在整個函數體內都可以使用,離開該函數則不能使用。 實參出現在主調函數中,進入被調函數後,實參變量也不能使用。 形參和實參的功能是作數據傳送。發生函數調用時,主調函數把實參的

區別

返回 pre bsp 類型變量 目的 出現 分配內存 函數定義 class 形參:全稱為"形式參數"是在定義函數名和函數體的時候使用的參數,目的是用來接收調用該函數時傳如的參數. 實參:全稱為"實際參數"是在調用時傳遞個該函數的參數. 形參出現在函數定義中,在整個函數體內都

cor text nsf 數據 round ans post oat pla 形參出現在函數定義中,在整個函數體內都可以使用, 離開該函數則不能使用。實參出現在主調函數中,進入被調函數後,實參變量也不能使用。 形參和實參的功能是作數據傳送。發生函數調用時, 主調函數把實參的

3-12

div war 16px pre 參數 多個 src bsp span # * 號可以有多個參數 *名字也可以自定義 規範 是 *args 按規矩來 *args 接收多個位置參數 轉換成元組 **kwargs 接收N個關

函數

函數形參 pan nbsp spa color 形參 print class code def cal(x,y):。。形參 s=x**y 。。x的y次方 return s c=cal(2,3) ..實參 print(c) 函數形參和實參

習題 :任意輸入十個數按大小排序;構造簡單數學運算模組(

任意輸入十個數字,按從大到小的順序排列   設定減法運算模組: 設定 乘除法混合運算 模組 int num = 3*chufa(num1, num2,num3); 這裡有這句指令,將該結果擴大三倍,40->120 *通過上面兩個程式引出形參和實參的概念: 通俗的來講,

Python的

形參可以設定引數預設值,設定遵循從右至左原則 例如:fun(x=0,y=1),fun(x,y=1),但不可以是fun(x=1,y) 形參設定可以為數字字串變數、元組列表和字典等任意型別資料,元組列表的的形參是在變數名前加*,字典形參是在變數名前加** 例如:fun(