傳參是什么意思 怎么區(qū)分C語(yǔ)言里的按值傳遞與按址傳遞?
怎么區(qū)分C語(yǔ)言里的按值傳遞與按址傳遞?參數(shù)類(lèi)型已知。按值傳遞和按地址傳遞都是函數(shù)參數(shù),即將實(shí)際參數(shù)的值轉(zhuǎn)換為形式參數(shù)的方法。規(guī)則是,當(dāng)傳輸類(lèi)型為type時(shí),如果參數(shù)類(lèi)型為type,則通過(guò)值傳遞參數(shù)。2
怎么區(qū)分C語(yǔ)言里的按值傳遞與按址傳遞?
參數(shù)類(lèi)型已知。按值傳遞和按地址傳遞都是函數(shù)參數(shù),即將實(shí)際參數(shù)的值轉(zhuǎn)換為形式參數(shù)的方法。規(guī)則是,當(dāng)傳輸類(lèi)型為type時(shí),如果參數(shù)類(lèi)型為type,則通過(guò)值傳遞參數(shù)。
2如果參數(shù)類(lèi)型為type*,則按地址傳遞。
3. 如果參數(shù)類(lèi)型多于類(lèi)型*,例如類(lèi)型**、類(lèi)型**,則將按地址傳遞。請(qǐng)注意,類(lèi)型本身可能是指針類(lèi)型。例如,如果參數(shù)本身是char*,則值將被傳輸;如果要傳輸?shù)刂罚瑒t至少應(yīng)使用char*。
關(guān)于VB數(shù)組里面按值傳遞和按地址傳遞的區(qū)別?
1私有子窗體uuuLoad()2 Dim x As Integer 3 x=2 4 A x 5調(diào)試.打印X 6 End Sub 7 Sub A(byref t為整數(shù))8 t=t-19 End Sub 10 Sub B(ByVal t為整數(shù))11 t=t-112 End Sub 13 Sub C(t為整數(shù))14 t=t-115 End Sub這是一個(gè)非常簡(jiǎn)單的玩具程序(呵呵,這是一個(gè)小玩具),但傳遞值和傳遞引用之間存在很大的差異。
第7、10和13行都是實(shí)現(xiàn)相同功能的進(jìn)程,即參數(shù)t的值減去1。在窗體的Load事件中,我們定義一個(gè)變量x,然后調(diào)用第一個(gè)過(guò)程(a),注意第七行參數(shù)列表中的ByRef鍵表示引用。對(duì)于pass引用,參數(shù)T和X實(shí)際上是變量。就像一個(gè)人有一個(gè)大名,他也可能有一個(gè)昵稱(chēng)。對(duì)于變量x,它的大名是x,昵稱(chēng)是t,那么t-1實(shí)際上是x-1。打印出來(lái)的最終結(jié)果是X-1=1。再看第10行。對(duì)于進(jìn)程B,其參數(shù)傳遞方法使用ByVal關(guān)鍵字(即值傳遞)。對(duì)于ByVal,參數(shù)T和X是兩個(gè)完全不相關(guān)的變量。就像兩個(gè)人一樣(以a和B為例),一開(kāi)始a有兩個(gè)蘋(píng)果,然后a告訴B你現(xiàn)在也有兩個(gè)蘋(píng)果,所以B高興地拿了兩個(gè)蘋(píng)果來(lái)處理B。過(guò)程B的功能是將B的蘋(píng)果數(shù)減少一個(gè),所以最后的程序是打印a的蘋(píng)果數(shù),顯然,蘋(píng)果數(shù)是2。一點(diǎn)都沒(méi)變。然后有朋友會(huì)問(wèn),這個(gè)時(shí)候,B的蘋(píng)果數(shù)是1。答案是錯(cuò)誤的。對(duì)于變量,它有一個(gè)生命周期(在編程中稱(chēng)為變量范圍)。在上面的代碼中,變量x的有效期從形式開(kāi)始,加載事件被激活,直到結(jié)束sub(即事件結(jié)束)。變量t的有效期從過(guò)程的第一句話(huà)開(kāi)始,到sub結(jié)束。一旦超過(guò)有效期,變量的值就不存在了。因此,如果要打印出B的蘋(píng)果數(shù),只能在打印過(guò)程中使用變量。在此過(guò)程之外對(duì)變量的任何操作都是沒(méi)有意義的。
求解vB中,按值傳遞和按地址傳遞的區(qū)別?
通常,VB只按值傳遞。如果有一個(gè)參數(shù)a,它的值是5,它在內(nèi)存中的地址是h879dimaasinta=5callxxx(a)。如果按值傳遞,則傳遞與原始參數(shù)一致的內(nèi)容,即傳遞5。在XXX過(guò)程中修改值不會(huì)影響原始值。此參數(shù)的內(nèi)容從h879的內(nèi)存中獲取。同時(shí),更改此參數(shù)的值也是對(duì)地址h879內(nèi)容的直接修改。因此,過(guò)程之外的變量值也會(huì)發(fā)生變化