傳遞指標參數:C 中按值傳遞或按引用傳遞
在 C 中,參數通常會以值傳遞,包括指標。當指標作為參數傳遞時,它指向的物件的位址將被複製到函數的參數中。這意味著函數內對指標本身所做的任何更改都不會反映在函數外部。
但是,對指標指向的物件所做的變更將被反映,因為原始物件是透過以下方式修改的指標引用。因此,使用指向指標的指標作為函數的參數來修改該函數內的指標值是可以接受的標準過程。
例如,考慮以下程式碼:
void ModifyPointer(int **ptr) { *ptr = new int; } int main() { int *ptr = new int; ModifyPointer(&ptr); return 0; }
在此程式碼中,ModifyPointer 函數將指向指標的指標作為參數。在函數內,指派了一個新的 int 對象,並將參數所引用的指標更新為指向新物件。
由於透過指針到指針修改了原始指針,因此更改反映在主要功能。 ptr 變數現在指向新指派的 int 物件。
在 C 中,盡可能使用引用而不是指標。引用提供與指標類似的功能,但具有更清晰的語法和更強的類型檢查。
例如,可以使用引用重寫上面的範例:
void ModifyPointer(int *&ptr) { ptr = new int; } int main() { int *ptr = new int; ModifyPointer(ptr); return 0; }
以上是在 C 中,指標如何作為參數透過值或參考傳遞?的詳細內容。更多資訊請關注PHP中文網其他相關文章!