呼叫函式的時候,實參和形參型別可以不一致
呼叫函式時,實參可以是運算式
呼叫函式時,實參和形參可以共用記憶體單元
呼叫函式時,程式會為實參和形參分配記憶體空間
那些是對的?
第二個能舉個例子嗎
uj5u.com熱心網友回復:
第一個,實參和形參型別可以不一致,前提是它們的型別可以發生隱式轉換。如形參為long,可以傳int,short,char的值。第二個,void f(int a);使用的時候可以是
f(2+4*6),引數接受的是一個值,這個值可以有運算式結算所得。
第三個,C++的參考就是實參與形參共用記憶體,但是C沒有這種用法。
第四個,呼叫函式是程式只會為形參分配記憶體空間,你傳遞的實參的記憶體與函式無關。
以上為個人總結。
uj5u.com熱心網友回復:
1 形參和實參不一樣的void func(float a); // 宣告
func(3); // 呼叫
2 運算式
printf("%d", 1+2 ); // 1+2就是運算式
實參可以是常量、變數、運算式、函式都行
3和4
形參是在呼叫的時候,程式在堆疊中給分配的記憶體, 形參變數的地址就是這個堆疊空間
實參是在呼叫之前就存在的,哪怕是函式的回傳值或者常量等也都是得到了最后的數值后, 把數值賦值給形參(堆疊中的變數)
所以他們不能共享記憶體,是賦值過去的,并不是同一個地址
哪怕是傳遞指標, 他們傳遞是指標的值(不是指標指向的資料) ,依然是賦值關系
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/151818.html
標籤:C語言
上一篇:在C程式中讀取秘密內容的最佳實踐
