簡體   English   中英

在C ++和C#中通過引用傳遞

[英]Pass by reference in C++ vs C#

在C#中,您可以將對象傳遞給函數,並且對該對象的屬性/成員所做的更改仍然存在。

在C ++中使用指針是必要的嗎?

不,你可以用C ++中的非const引用做同樣的事情。

至於引用和指針之間的區別,請查看此主題:

C ++中指針變量和引用變量之間有什么區別?

您可以使用非const引用來執行此操作...

void square(int32_t& x) {

    x = x * x;

}

雖然在非成員函數調用中改變事物通常是一種不好的做法,因為它使調用者在調用狀態之后更難以推理狀態。

傳遞值或引用const通常更好...

int64_t square(const int32_t& x) {

    return x * x;

}

沒有。

在C ++中,您可能希望這樣做:

int someNumber = 2;

void modifyNumber (int& number)
{
   number = number + 1;
}


int main ()
{
std::cout << someNumber;
modifyNumber (someNumber);
std::cout << someNumber;
return 0;
}

以上的輸出將是:

2

3

通過在參數中使用&符號,您可以通過引用傳遞變量。

但是,在分配變量時,&符號也用於表示變量的地址。 即:

int someNumber = 0; //create an integer variable
int* pointer = &someNumber; //assign the pointer to point to the address of someNumber

小心。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM