在下面的例子中,我得到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)
没有!
*NumRecPrinted = no_of_records;
Run Code Online (Sandbox Code Playgroud)
参见"*"表示"值","&"表示"地址".您想要更改NumRecPrinted的"值",这就是上述工作原因.你做的是给NumRecPrinted"num_of_records的地址".
您正在为指针分配地址,而不是指向指向的值.试试这样吧
int demo (int *NumRecPrinted)
{
int no_of_records = 11;
*NumRecPrinted = no_of_records;
}
Run Code Online (Sandbox Code Playgroud)