c語言指針作為函數(shù)參數(shù)傳遞 在C語言里只有指針作為形參才能改變實參的值嗎?
在C語言里只有指針作為形參才能改變實參的值嗎?準確地說,修改參數(shù)的地址可以改變參數(shù)的值。指針傳遞地址,因此可以更改。函數(shù)的形式參數(shù)接受和指針變量。如果你傳遞地址,你不必是指針就可以直接得到變量的地址你
在C語言里只有指針作為形參才能改變實參的值嗎?
準確地說,修改參數(shù)的地址可以改變參數(shù)的值。指針傳遞地址,因此可以更改。函數(shù)的形式參數(shù)接受和指針變量。如果你傳遞地址,你不必是指針就可以直接得到變量的地址
你需要使用*來取消引用,這樣你就可以改變指向內存的指針的值。你的交換功能有問題。有人給了你正確的寫作方法。至于為什么*x和*y的值沒有改變,因為你交換了兩個形式參數(shù)的值。盡管您傳入了指針,但并不將它們用作指針。最終結果與傳遞非指針值的結果相同。如果要真正更改參數(shù)的值,必須交換指針指向的內存,而不是簡單地交換指針變量本身。形式參數(shù)通過堆棧傳遞。只有使用*x=1這樣的語句來操作指針指向的內存,才能影響實際參數(shù)。否則,實際參數(shù)的值不會改變。其實最好的辦法就是去VS調試運行,仔細觀察運行過程,就可以更清楚地理解指針。一個簡單的理論是站不住腳的,一出來就很清楚了。我想幫助你。