将指针传递给函数不会返回值

AJ.*_*AJ. 3 c++ pointers

在下面的例子中,我得到NumRecPrinted = 0,即num为0

int main()
{
    int demo(int *NumRecPrinted);
    int num = 0;
    demo(&num);
    cout << "NumRecPrinted=" << num;    <<<< Prints 0
    return 0;
}

int demo (int *NumRecPrinted)

{
    int no_of_records = 11;
    NumRecPrinted = &no_of_records;
}
Run Code Online (Sandbox Code Playgroud)

Nav*_*h G 6

没有!

*NumRecPrinted = no_of_records;
Run Code Online (Sandbox Code Playgroud)

参见"*"表示"值","&"表示"地址".您想要更改NumRecPrinted的"值",这就是上述工作原因.你做的是给NumRecPrinted"num_of_records的地址".


Bo *_*son 6

您正在为指针分配地址,而不是指向指向的值.试试这样吧

int demo (int *NumRecPrinted)
{
     int no_of_records = 11;
     *NumRecPrinted = no_of_records; 
} 
Run Code Online (Sandbox Code Playgroud)