我们看到函数的定义时,参数经常是一级指针或者二级指针;
一般来说,当函数参数为一级指针的时候:我们传递的参数是一个普通变量的地址,而不是一个一级指针变量;
即:我们定义一个普通变量,函数返回后,会给该普通变量赋值。
int value;
void foo(int *mm)
{
*mm = 2;
}
//函数调用
foo(&value);//此处并不是将一个一级指针的值传到函数中。
同理:函数形参为二级指针的时候也是一样的。
当函数参数为二级指针的时候,我们传递的参数是一个一级指针变量的地址,而不是一个二级指针变量。
int *value;
void foo(int **mm)
{
*mm = malloc(sizeof(int));
}
//函数调用
foo(&value);//此处并不是将一个二级指针的值传到函数中。