这是代码片段
void F (int a, int *b)
{
a = 7 ;
*b = a ;
b = &a ;
*b = 4 ;
printf("%d, %d\n", a, *b) ;
}
int main()
{
int m = 3, n = 5;
F(m, &n) ;
printf("%d, %d\n", m, n) ;
return 0;
}
Run Code Online (Sandbox Code Playgroud)
回答
4 4
3 7
Run Code Online (Sandbox Code Playgroud)
我看到如何4 4计算,我没有得到他们如何得到3 7(我明白如何计算3,它没有改变,因为它没有通过引用传递)
谢谢 !
我F用注释来注释函数来解释发生了什么:
a = 7 ; // a is now 7
*b = a ; // b points to n, so n is now 7
b = &a ; // b now points to a and no longer to n
*b = 4 ; // a is now 4. n is unaffected
Run Code Online (Sandbox Code Playgroud)