[英]Pass by reference in C++ vs C#
在C#中,您可以將對象傳遞給函數,並且對該對象的屬性/成員所做的更改仍然存在。
在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.