-
誠然,它只能在乙個方向上傳輸(在C語言中),而不是矛盾的。
如果傳遞值(void swap(int a,int b)),那麼無論你在函式中如何修改這個值,它都會改變函式中變數的值,並且不會影響外部。
如果傳遞位址(void swap(int*a,int*b)),則函式在獲取此位址時可以更改記憶體位址中的資料,退出函式後原始變數記憶體位址中的資料會發生變化。
因此,swap函式中的變數值在任何情況下都不能傳遞給main函式,並且在傳遞位址時,main函式中的資料會被位址修改。
圖 1,為什麼不能更改值?
圖2,為什麼位址可以更改。
-
swap 是指標使用的典型教科書示例......
如果不使用指標,則交換函式僅限於函式... swap(int a,int b) 中 a,b 的作用域只在函式中,在函式之外看不到,a=x,b=y,x,y 的值傳遞,a,b 的值發生變化,但 x,y 的值不變,函式返回只能返回乙個物件, 不是同時有兩個物件,並且更改後的 a,b 不能同時分配回 x,y。所以這裡不可能實現函式功能......
而 a中的swap(int* a,int* b)是乙個指標變數,記錄是乙個記憶體位址,a=&x 表示把 x 變數的記憶體位址取到 a,所以 a 和 &x 是同乙個位址,*a 和 x 是兩個實際內容相同的名稱...... 操作 *a 等於操作 x...
好吧,外行的解釋是:
傳遞值相當於轉殖,創造了乙個和你一模一樣的人,但你對那個人的所作所為對你沒有影響......
指標相當於給你起了個新名字,而代表這個新名字的人其實是在對自己動手......
-
鍵是傳遞乙個指標還是乙個引用,或者傳遞乙個值,前三個就不說了,不管是指標還是引用,都是這個結果,鍵是(4)的輸出,因為你傳遞了指標,所以,在函式內部,變數的值發生了變化, 並且在函式外有效,如果去掉 * 指標標誌,估計還是會輸出 x=30, y=20
-
答案:Sou Ho Song 案]:c
本題考核程式語言基礎知識。 在值傳遞模式下,引數的值被傳遞給 form 引數,因此引數可以是表示式(或常量),也可以是變數(或陣列元素節拍),這種資訊傳遞是單向的,form 引數不能再將值傳遞回引數。 在位址傳遞的情況下,需要將引數的位址傳遞給形式引數,因此引數必須是變數(陣列名稱或陣列元素),而不是表示式(或常量)。
這樣,被呼叫函式中形式引數的修改實際上是對實際引數的修改,因此可以客觀地實現資料的雙向傳輸。
-
答案]:c本題考核程式語言基礎知識。呼叫函式時傳遞基本引數有兩種方式,在值傳遞模式下,引數的值傳遞給引數,因此引數可以是表示式(或常量),也可以是變數(或陣列元素),這種資訊傳遞是單向的,引數不能再將值傳遞回引數。
在位址傳輸模式的情況下,打孔衝突需要將引數的位址傳遞給表單引數,因此引數必須是變數(陣列名稱或陣列元素),並且可以是表示式(或常量)。 這樣一來,被呼叫函式中形式引數的修改實際上是對實際引數的修改,因此資料可以雙向傳輸。 鬆散的談話。
-
在值呼叫中,應找到純肢寬 ()。
a.形狀引數和實數引數為任意亮型,且數量相等。
b.引數型別可自動轉換為對應的引數型別,引數與引數個數相等。
c.實引數和表單引數的型別完全相同,數量相等。
d.實際引數與表單引數對應的型別相同,數量任意。
正確答案:B
-
傳遞乙個值就是複製,傳遞乙個位址就是移交本體。
-
按值傳遞:呼叫方法時,傳遞的引數由值的副本傳遞。 按值傳遞的重要特徵:傳遞的是值的副本,這意味著傳遞後彼此之間沒有關聯。
-
答:A只改變後期變形的引數變數的值,不改變封面胡的引數變數的值,引數的值可以按值轉移,byref傳輸肯定會改變實數引數的值來做損失。
您好,對於已經註冊為會員的使用者,我們無法知道如何更改IP的信譽,我們只能查詢那些未註冊使用者的IP。 對於非成員 IP,IP 的最後一位數字通常是隱藏的,例如我們假設 * 為 2那是在戴上這個IP之後。 >>>More
1 首先列印IE或者其他瀏覽器,在位址列中輸入路由器的位址:最初如果有變更,請輸入變更後的位址,輸入後按回車鍵,使用賬號名和密碼登入到路由器設定頁面。 這裡我們以TP-Link路由器為例給大家介紹,如圖所示 >>>More
貝殼,網上有很多這樣的自動抓雞工具,可以在網上搜尋,不要怕病毒,最好找個好的黑客**,比如這個,1在這裡,我向您推薦一款全能軟體:streamer,查詢漏洞和埠,絕對有效; 有些 PC 在區域網中,所以沒關係。 >>>More