假設在 main 函式中,一個 int 型別變數 x 的值為 20。如果該函式作為 foo(&x) 被呼叫 2 次,那么 x 的值是多少?
#include<stdio.h>
void foo(int *n)
{
int *m;
m = (int *)malloc(sizeof(int));
*m = 10;
*m = (*m)*5;
n = m;
}
int main()
{
int x = 20;
foo(&x);
printf("%d",x);
}
x 的值不應該是 50,因為我們用 m 初始化 n 的地址,m 的值是 50,但結果是 20?
uj5u.com熱心網友回復:
該地址的的n指標是本地的foo。所以在內部修改指標在foo函式外部沒有影響。但是在取消參考時n,可以更改指向的值。
對于x成為50,在最后一行foo的功能應該是:
*n = *m;
轉載請註明出處,本文鏈接:https://www.uj5u.com/qukuanlian/384334.html
