→ loveme00835:你在每個地方都把 a1 的位址印出來看看 06/17 22:01
加上去了
→ loveme00835:還有把你呼叫時傳給他的引數位址 06/17 22:01
l大 不好意思 這句我有看沒有懂= =
※ 編輯: wope 來自: 140.112.63.132 (06/17 22:07)
→ loveme00835:假如這樣寫: LLdouble a2; f1(a2); a2 的位址跟 a1 是 06/17 22:13
→ loveme00835:不同的, 因為這個呼叫產生出一個複製品 a1, 如果要作 06/17 22:14
→ loveme00835:修改要傳位址進去, f1 再對指標指到的變數作修改 06/17 22:15
感謝love大提供方向
不過想跟love大再確定看看這想做是否正確
我這樣作是不是直對記憶體的值做修改?
//以下這個函數目前跑出來的值是這確的
void f1(double a2,LLdouble &a1){
//這裡printf(a1)為 0
a1.numberStr=a2;
//這裡printf(a1)為 1.00000
}
不知道這樣寫是不是合法的寫法?
※ 編輯: wope 來自: 140.112.63.132 (06/17 22:26)
→ wope:如果合法 我就有一堆要改了 = = 不過這也是另一個收獲 06/17 22:28
→ EdisonX:c++ 才可這麼寫。 06/17 22:33
推 ckfmp:有&是指標=Call by ref, 無&是變數= Call by value 06/26 11:06