[英]Local variable in one function changing results in an unrelated function, C++
[英]Changing a Local Variable With a Different Function
如果increaseNumber
必須為void
,如何使用get_number
increaseNumber
更改number
中的數字?
#include<iostream>
using namespace std;
void increaseNumber(int64_t number){
number++;
}
int64_t get_number(){
int64_t number = 0;
increaseNumber(number);
return number;
}
int main(void){
cout << get_number();
}
如果有任何幫助,我嘗試更改數組而不是 integer 並且效果很好。
問題是您聲明 function increaseNumber
的方式是通過值傳遞參數:
void increaseNumber( int64_t number )
這樣,它會傳遞 function get_number
的變量number
的值的副本。 因此,修改 function increaseNumber
的變量number
不會改變 function get_number
的變量number
,因為它們是兩個獨立的變量。
如果您還希望修改原始變量的值,則不應傳遞變量值的副本,而應改為聲明 function 以傳遞對原始變量的引用:
void increaseNumber( int64_t& number )
這樣,將不會復制原始變量,並且您的程序應該按預期工作,而無需任何進一步的修改。
使用數組與你一起工作的原因是,如果你傳遞一個數組,它將衰減為一個指針,這相當於一個引用。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.