簡體   English   中英

使用不同的 Function 更改局部變量

[英]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.

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