傳址,傳參考,傳址 是基本但重要的概念。此概念在很多語言都通用
我使用Gif動畫檔 快速帶領大家了解 傳址,傳參考,傳址
傳值(Call By Value)
顧名思義 是把值
傳到 另一個記憶體位置
的值
上
2. 傳址 (Call By Adress)
是把`記憶體位置`傳到 另一個`記憶體位置`的`值`上
補充:嚴格來說(`Call By Adress`)是不正統的說法,其實傳址也是傳值但傳的是`記憶體位置`,(感謝 CF 提醒)
傳參考(Call By Reference)
是把記憶體位置
傳到 移到另一個記憶體位置
上 (可看作同一個物件)
在C#廣義來說
基本型別 Struct (int,double,float,byte ...) 可看作 傳值
一般型別 Class (自訂Class ,SqlConnection....) 可看作 傳址 更精確來說是傳Stack的值(指向Heap的記憶體位置)
在C#中並沒傳參考,只有傳值和傳址
此文同步發布 : https://dotblogs.com.tw/daniel/2018/02/26/150443
fysh711426所以我說,為什麼每個人都可以那麼會用小畫家
小畫家功能精簡 使用起來方便 深受工程師喜愛
哈哈哈,對阿
小畫家很好用,還有賴的截圖功能,可以拉框線打字。
我是用 c 語言的觀點去看的,我認為應該沒有叫做 call by address 的說法,正確應該叫做 call by value of pointer,不曉得樓主的看法是?
正統來說C語言只有 pass by value
,的確沒有 call by address
這個方式,會說 call by address
一般是為教學方便。
這個部份我會在文章中做補充 感謝提醒