簡體   English   中英

無法在函數調用中使用int后減

[英]Cannot use int post-decrement in function call

我創建了一個遞歸指數函數,最初將其稱為return num * power(num,exp--) ,但是由於第一種方法破壞了程序,我不得不將其更改為exp-1 為什么必須使用exp-1

#include <iostream>
using namespace std;

int power(int num, int exp);

int main()
{
    cout << power(5, 3) << endl;

    return 0;
}

int power(int num, int exp)
{
    if (exp == 0)
        return 1;
    else
        return num * power(num, exp-1);
}

這是因為, exp--首先使用您的值來調用power()函數,然后遞減。 在這種情況下,傳遞給函數的值將保持為3。因此,它將進入無限循環。

您應該使用--expexp-1

您需要--exp ,而不是exp-- exp--是遞減的,這意味着它將僅在函數調用之后執行。 因此, exp--不等於代碼中的exp-1 ,但是--exp是:該值將首先遞減,然后使用遞減后的值調用該函數。

為什么我必須使用exp-1?

您還可以預先增加--exp ,從而為您提供增加的值。

后增量exp--取當前值,然后遞減。
就您而言, 永遠不會改變價值。

您獲取當前的exp值,然后將其按傳遞給函數。

暫無
暫無

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

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