c語言函式呼叫引數傳遞的是什麼,C語言函式呼叫引數傳遞的是什麼

2021-03-04 05:38:33 字數 708 閱讀 8821

1樓:匿名使用者

c語言傳遞的是值而不是位址,這一點從vb轉過來的程式設計師一定要注意。否則不經意間就會犯錯誤。另外下層函式修改上層函式變數不是一種好習慣,容易引發錯誤。

c語言中函式可以返回乙個函式值,如果你需要返回多個函式值可以用下面的形式

fun(int *a, int *b)

main()

如果按vb的習慣,

fun(int a, int b)

main()

是錯誤的,main中的a,b和fun中的a,b完全是兩碼事,結果就是調運fun沒有任何效果。

2樓:

分兩種,一種是按值傳遞,一種是按位址傳遞,

按值傳遞就是在子函式中開闢出乙個臨時記憶體空間,將傳遞的數值儲存在這個空間中,當子函式結束後,這個記憶體空間就會釋放了!

按位址傳遞則是把主函式開闢的某個記憶體空間首位址傳遞給子函式,子函式可以直接讀寫主函式上這段記憶體空間,當子函式結束後,這部分空間不會被釋放,主函式將繼續使用這段空間!

c語言中函式呼叫***x時引數太少是什麼意思?

3樓:匿名使用者

就是說主函式呼叫自定義函式時,傳遞的引數數量要一致。比如:

void fun()

main()

再比如:

void fun(int a,int b)main()

C語言,函式引數傳遞方式是單向的,形參不能給實參賦值是什麼意思?自定義函式最後用return

實參把值傳給形參以後就和形參切斷聯絡了,對形參操作後得到的是副本。c語言是嚴謹的,乙個位址對應唯一的引數,但同乙個引數可能有不同的位址 拿經典的swap交換函式舉例 如果你交換的不是指定位址的變數 只是普通變數 那麼他給你返回的結果就是你給的變數的副本的交換 而當交換物件變成指定位址的物件的時候 就...

C語言函式呼叫的問題

主函式的a作為輸入引數輸入給函式aaa進行計算,計算後a的值不發生變化。這是c語言的基本規則。從編譯原理角度講,輸入aaa的只是a的值,並不是a所在的暫存器或位址,a的值輸入aaa後,該值被存放在另乙個臨時暫存器或位址,發生改變的是這個臨時暫存器或位址的值,而非a所在的暫存器或位址的值,所以,a的值...

C語言指標建立函式問題,C語言指標呼叫函式問題,急求解釋(本題是《c和指標》上的題目)

第乙個表示傳遞graphadjlist型別的引用g,第二個表示傳遞graphadjlist型別的指標g 另外這是c 不是c。c語言指標呼叫函式問題,急求解釋 本題是 c和指標 上的題目 c語言指標作函式引數時的返回問題 首先,弄懂函式引數都是靠值傳遞。指標也是。進入函式後,函式建立幾個空間給形參,再...