C語言中實參與行參是怎麼回事

2025-03-10 09:25:23 字數 1183 閱讀 1423

1樓:貳熙湯欣合

形參啟神:全稱為"形式引數"是在定義函式名和函式體的時候使用的引數,目的是用來接收呼叫該函式時傳如的引數。

實參:全稱為"實際引數"是在呼叫時傳遞個該函式的引數。

形參和實參的型別必須要一致,或者要符合隱含轉換規則,當形參和實參不是指標悄知虧型別時,在該函式執行時,形參和實參是不同的變數,他們在記憶體中位於不同的位置,形參將實參的內容複製乙份,在該函式執行結束的時候形參被釋放,而實參內容不會改變。

而如果函式的引數是指標型別變數,在呼叫該函式的過程。

中,傳個函式的是實參的位址,在函式體內部使用的也是實參的位址,即使用的就是實參本身。所以在函式體內部可以改變實參的值。

給你乙個很簡單的例子:

intf(int

b)*b為形參*/

return

b;}main()

inta=1;

printf("%d",f(a));猛配*a為實參*/

2樓:新華電腦學校

問題中提到的是行參不是實參,行參只能是變數,芹仔在被定物念義的函式中,必嫌螞汪須指定行參的型別實參可以是常量,變數,表示式,函式等。

程式設計c語言形參與實參是什麼意思

3樓:捷遠扈珍

首先。search(float(*p)[4],int

n)這裡的float(*p)[4],這裡的p是指向乙個長度為4浮點型的陣列。p即是這個陣列的首位址。

另外socre是2維陣列名,那麼即是這個陣列的首位址。

那麼主函式呼叫這個函式後,即相當於p=score,將score賦值給p.

說到這裡,我似乎明白你要表達的意思了。

例如,int

a[8];int**score

a;intb=100;

你在主函式里這樣呼叫函式。search(score+1,b+200);這裡,p=score+1;n=b+200了。

另外你說的第二個問題。search(float(*p)[4],int

2n)假設,主函式里這樣呼叫函式search(score,100);我猜你要問的是,這裡的n=100呢還是等於50。

很明顯,這裡n=50!因為這兩個n完全沒有關係,是兩個函式里的。

但是這裡要說明的是,第一2n是不合法的變數名。第二,函式引數必須是變數名,但呼叫函式時可以是表示式。

C語言中如何取整,C語言中取整是怎麼取?

茅玉枝稅子 參與運算量均為整型時,結果也為整型,捨去小數。如果運算量中有一個是實型,則結果為雙精度實型。printf d,d n 10 3,10 3 printf f,f n 10.0 3,10.0 3 c語言有以下幾種取整方法 1 直接賦值給整數變數。如 inti 2.5 或i int 2.5 這...

c語言中語句“y x1”是怎麼執行的

埃德蒙 放後邊 x先參與 運算 計算結果賦給y 之後x值自增1。如果x 3,y x 1 之後y 2 x 4就是要記住一個規則 在變數之前時 值先自增1 再參與其他運算,在變數之後 先參與其他運算 變數值再自增1 關燁韋 先執行x 1,然後再賦值給y,然後再x 如果換成y x 1 就會先自增,再運算。...

C語言中的A 41,B 42,C 43是怎麼來的

油菜花零 char c a 這裡c的asc碼值其實就是65,65在十六進位制中就是41。 這是將a,b,c的ascii十進位制數65,66,67轉換成十六進位制數41,42,43 就是這樣的 ascii字元碼中a 41h,b 42h,c 43h h代表16進位制數 這是ascii字元碼轉換成的十進位...