指標拷貝與值的傳遞

2022-09-02 13:03:09 字數 596 閱讀 2910

c永遠有著那麼多你所不知道的東西,最近在coding的時候,發現對於指標,我還是沒有琢磨好。

碰到這麼乙個問題,看**如下:

view code

1

inta;

23 address(int *m)47

8main()

9

這裡只是為說明問題,將**簡化了,上面的**有很大的問題,在main函式中,將指標做為實參傳遞給形參,這樣可以嗎?很顯然,這是不可以的,這樣傳遞的只是實參的乙個拷貝而已,真正的實參並沒有傳遞過去,所以,address呼叫完畢以後,對p沒有任何的影響。當然,在做值傳遞的時候,大家也可以想到,其實值的傳遞也只是乙個拷貝而已。

那麼正確的**應該是怎樣的呢?請看下面的**:

1.可以直接return乙個位址,但這樣只能傳遞乙個引數。

2.用引用,比較推薦這種方法,請看

address(int **m)

呼叫的時候,address(&p)就可以了。

為了說明問題,畫一記憶體圖,便於理解。

函式的值傳遞與指標

1.形參只是實參的拷貝本 形參的改變並不能影響實參 2.指標傳遞 指標傳遞,是把實參所在的位址傳遞出去,所以那時函式可以直接對實參進行改變 3.引用 在此時不是求位址運算,而是標識作用 1 引用不是值,所以她並不占用記憶體 2 引用其實就是變數另外的乙個名字 皮皮蝦 小屁屁 3 引用宣告方式 型別識...

值傳遞,引用傳遞,指標傳遞

最近一直被c 的值傳遞,引用傳遞,指標傳遞這些概念所困擾,一直沒有乙個能說清他們之間的關係通過乙個簡單的例項,或者說淺顯的說法,找了一些相關資料,和自已的個人感受,簡單介紹一下,希望高人指正 c 中傳遞引數的方式有三種 傳引數的值 稱為值傳遞,簡稱傳值 傳引數的位址 稱為位址傳遞,簡稱為傳址 和引用...

值傳遞,引用傳遞,指標傳遞

值傳遞 形參是實參的拷貝,改變形參的值並不會影響外部實參的值。從被呼叫函式的角度來說,值傳遞是單向的 實參 形參 引數的值只能傳入,不能傳出。當函式內部需要修改引數,並且不希望這個改變影響呼叫者時,採用值傳遞。指標傳遞 形參為指向實參位址的指標,當對形參的指向操作時,就相當於對實參本身進行的操作。引...