在呼叫函式時,函式是怎樣傳值的,c語言函式呼叫時,實參和形參是如何傳遞的?什麼時候要寫指標型變數?求高手指點

2021-07-08 22:28:32 字數 2047 閱讀 6629

1樓:毋惜苼

在c語言中,實參將值傳給函式中的形參,實現了自上而下的值傳遞,就可以呼叫函式了。

舉個淺顯一點的例子吧:

#include

void main()

int swap(int x,int y)在主函式中,將實參a,b的值傳遞給被呼叫函式中的形參x,y,即將a,b分別代入x,y中計算,即達到了呼叫的目的。

2樓:胡神父

函式的傳值方式很多,不知道你說的哪一種。、

一般的有兩種:直接傳值和間接傳值

1、直接傳值就是傳到函式裡面只是一個值,函式中用這個值的時候與函式外互不影響,這種傳值一般是基本資料型別。例如:

定義的時候void function(int a)

呼叫的時候int a=1;function(a);printf("%d",a);這裡輸出是1;

2、間接傳值傳遞的是變數的地址,在函式中的變數的改變會影響到外面的輸出。例如:

定義的時候void function(int &a)

呼叫的時候int a=1;function(a);printf("%d",a);這裡輸出是2;

這裡要注意的是如果引數是指標、陣列。那麼傳進來的也是一個地址。會影響到函式外面的。

3樓:灰晞鬱

不知道你是具體什麼地方看不懂。函式的值傳遞分為利用全域性變數和利用引數傳遞。其中利用全域性變數傳遞因為安全性較低而使用較少。

引數傳遞分為值傳遞和地址傳遞。值傳遞主要是把實參(這個名詞理解了嗎?)複製一份,傳遞給形參,然後再在函式裡進行相應指令的執行,優點就是編譯時會給形參分配相應的地址和空間,不會改變實參的值。

函式呼叫結束後形參的作用也就結束了。

地址傳遞要涉及到指標(按照我用的教材的編排是先講函式後講指標的,所以剛讀到地址傳遞的時候很摸不著頭腦……),優點就是能通過形參改變實參的值(也可以說這是缺點,地址傳遞的***,改變了原來的資料)。

4樓:

自學的時候看一堆文字很容易感覺繞不清楚,所以建議你先把書上那一章相對應的例子好好看看,再上機實現一下這些例子,看看不同的引數傳遞會帶來哪些不同的結果,可以幫助並加深理解。

也可能你看的教材本身對這個知識點就講的不多,也沒有什麼例程,那麼建議你參考一下別的教科書對此的講解。

5樓:手機使用者

用graphics的成員方法gethdc獲得,graphics可以用靜態方法fromhwnd建立某個窗體的繪圖器,把某個窗體的handle傳給他就可以了,如果handle傳0,則建立的是整個螢幕的繪圖器。

c語言函式呼叫時,實參和形參是如何傳遞的?什麼時候要寫指標型變數?求高手指點~

6樓:匿名使用者

形參bai在函式定義時表示的du一種佔位符zhi,實參就是裡面存有實際變數dao值或者版

常量,函式呼叫時,實參權值會自動傳遞給形參變數。指標比較複雜了。是變數的地址,如果引數型別是指標型別,則必須把實參變數的地址傳遞過去。當然在函式內也是間接引用實參變數的。

比如void f(int * p) //形參是指標型別變數下面是呼叫形式

f(&a); //呼叫函式,實參是變數a的地址。

7樓:孟於清

比如void main(void)是形參···· void main(unsigned int m)是實參

8樓:jyw金

回答:1.傳值呼叫,形參是實參的一個拷貝,形參和實參不是同一個儲存單元。

2.傳地址呼叫,將實參的地址傳給形參,形參和實參操作同一儲存單元。

9樓:巢秀榮容子

這程式是你寫的嗎?

要是你寫的話

你就看下面的三段話

就能找出。

1.比如你定義一個函式專void

add(int

a,int

b),這裡的屬a和b就是形參。

2.當你進行函式呼叫的時候,add(1,

2),這裡的1和2就是實參。

3.形參就是沒有賦值的變數,實參就是有賦值的變數

C語言函式呼叫引數傳遞的是什麼,在C語言裡向函式傳遞的是「引數」是什麼意思

c語言傳遞的是值而不是地址,這一點從vb轉過來的程式設計師一定要注意。否則不經版 意間就會犯權錯誤。另外下層函式修改上層函式變數不是一種好習慣,容易引發錯誤。c語言中函式可以返回一個函式值,如果你需要返回多個函式值可以用下面的形式 fun int a,int b main 如果按vb的習慣,fun ...

c語言void子函式,求得的值在主函式裡怎麼輸出

把變數定義在主函式之外,即把變數設定為全域性的。一般我們都把變數的定義放在函式中,因此變數的範圍就是在本函式中。可是如果定義在所有函式的外面,這樣所有的函式中,都可以使用本變數。你可以試一下這個程式。定義一個全域性變數a,在主函式中進行賦值,然後在子函式中進行輸出,結果是5.include int ...

C中,有關呼叫外部類函式的問題

模板類的宣告和函bai數體必須都放在du標頭檔案中。zhi否則編譯器在實體 dao化的時候沒辦法根 內據模板引數來 容確認實體部分的 這是規則。如果您不想把模板類的定義放在標頭檔案,那麼唯一的方法就是把模板類定義 實體 使用者都放進file2.cpp。c 怎麼類外定義模板類的成員函式?模板引數怎麼呼...