试图将地址传递给对指针的引用

Trying to pass adress to a reffernce to a pointer

为什么调用 funk(&a) 会出现编译错误

func(int * & data) {data++;}

int main(){

int a = 5;
int *p = &a;
func(&a); //this gives a compile error
funk(p);  //this works fine 
}

错误:从类型“int*”的右值初始化类型“int*&”的非常量引用无效

正如错误信息所解释的那样,参数需要引用一个变量,而&a不是一个变量,它是一个变量的地址