1樓:克拉默與矩陣
值傳遞:
形參是實參的拷貝,改變形參的值並不會影響外部實參的值。從被呼叫函式的角度來說,值傳遞是單向的(實參->形參),引數的值只能傳入,
不能傳出。當函式內部需要修改引數,並且不希望這個改變影響呼叫者時,採用值傳遞。
指標(地址)傳遞:
形參為指向實參地址的指標,當對形參的指向操作時,就相當於對實參本身進行的操作
2樓:匿名使用者
按值傳遞其實就是把變數複製了一遍,因為是複製品,所以他不會改變樣品的值
比如有一個函式 fun( int x);然後去呼叫int a=8;
fun(a);當執行到這裡的時候 就建立了一個變數 x然後 a 的的值就複製給 x 了
因為他們存放的地址不一樣,所以函式裡面 x 變化了a 的值是不會變的
不知道你能不能理解
3樓:匿名使用者
按值傳遞更容易理解嘛.
引數為非指標型別,呼叫的時候不用地址傳遞,子程式中更改的是區域性,而不是呼叫時的引數.
若要細細講的話,按地址傳遞都還有需要說的.
請理解下"指標"與"指標所指向的物件"的差別.
"指標"又有地址麼?等
c++中陣列作為引數,有按值傳遞和按地址傳遞這兩種方式麼?
4樓:風若遠去何人留
都是傳地址.
不過地址也是有區別的.
傳陣列名本身, 屬於按值傳遞,即使它是第一個地址值.
傳遞陣列地址,或者傳遞陣列引用, 屬於傳地址.
但實際上,由於陣列名不許修改值,傳地址並沒有什麼意義.
c++關於函式的傳值和傳地址傳引用的區別?
5樓:home我是吸血鬼
#include
void plus(int p, int *q)
main()
6樓:captain璇
傳值可以說是暫時分配一個新的空間,不會改變原來的值,傳引用相當於把變數的地址傳過去,會改變原始的值
7樓:匿名使用者
你好,函式傳值,只是起到一個「傳」的作用,在呼叫函式中修改,只會在呼叫函式的這個作用域中起作用。
函式傳地址,一般通過傳指標或傳引用。它在呼叫函式的時候,如果改變了傳入地址中的資料,即地址所指向的地址空間。
而通過傳值,相當於在記憶體中拷貝了一份,在呼叫函式中,只改變了拷貝值所在的地址空間的資料,而不是改變所傳入值的地址空間的資料
a1和a2都是執行了,只是a2執行的並沒有改變傳入的值!
如果需要還不懂,可以再來問我!
c++中指標的地址和地址值在記憶體中如何分配,相互之間又有什麼區別和聯絡呢?請求詳細講解,謝謝!
8樓:
c++中,指標中存放的是地址,地址指向的是記憶體中的某一塊區域,那裡存放著某一個值或者那塊記憶體存放著某一組地址連續的資料,比如陣列.
c++的指標中存放的是地址,,這說明指標本身也是佔用了記憶體的,,如果沒有佔用記憶體,那這個地址存放在哪?所以你定義一個指標這個指標是佔用了記憶體的
而地址值指的就是這個指標指向的那塊記憶體區域中存放的東西,,比如現在有一個整形變數叫做a,,裡面存放著數字1,,那麼此時我們用一個整形指標指向這個變數a的地址,,此時你說的指標值就是這個變數a的值,也就是數字1
以前資訊傳遞的方式和現代傳遞的方式有什麼不同
最大的變化在於速度吧,以前的通訊速度是基本和交通速度相同,例如八百里加急。雖然有類似飛鴿傳書和烽火等較快的方法,卻受限於安全性,資訊量以及可靠程度等問題。但是自從無線電被應用之後,資訊就開始以光速傳遞了,資訊量和可靠性也大幅提高。古代 資訊傳遞的方式很少且慢,古代傳遞資訊的方式如烽火 書信 一般是找...
JSPa href中傳遞中文的問題
有兩種方法 一,改為英文名 二,對 的路徑名進行處理,假設 路徑名為string imgroot new string imgroot.getbytes iso 8859 1 gb2312 把 名改為英文名.求助 jsp中用href傳遞中文引數亂碼 不能再js中用encodeuri轉碼 如果是str...
現代資訊傳遞方式的好處和壞處現代傳遞資訊的方式的優缺點?
上網的五大好處 一是開闊視野,及時瞭解時事新聞,獲取各種最新的知識和資訊 二是可以毫無顧忌地與聊天,傾吐心事,減輕課業負擔,緩解壓力 三是可以在各個bbs裡張貼自己對各種問題的看法和見解,覺得很有成就感 四是可以提高自己某項業餘愛好的水平 五是自己動手做主頁已成為時尚,把自己喜愛的 資料傳上去,開一...